首页后端开发PHP动态加载PHP扩展的方法是什么

动态加载PHP扩展的方法是什么

时间2024-03-24 17:38:03发布访客分类PHP浏览724
导读:这篇文章主要给大家介绍“动态加载PHP扩展的方法是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“动态加载PHP扩展的方法是什么”文章能对大家有所帮助。 目录...
这篇文章主要给大家介绍“动态加载PHP扩展的方法是什么”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“动态加载PHP扩展的方法是什么”文章能对大家有所帮助。

目录
  • 查看是否已经加载了扩展
  • 动态加载扩展
  • 测试代码:

在编译并完成 php.ini 的配置之后,我们就成功的安装了一个 PHP 的扩展。不过, PHP 也为我们提供了两个在动态运行期间可以查看扩展状态以及加载未在 php.ini 中进行配置的扩展的函数。下面,我们就来看看它们的使用。

查看是否已经加载了扩展

echo extension_loaded("redis");
    

非常简单的一个函数,它的作用就是检查一个扩展是否已经加载。它返回的是一个布尔值,当扩展已经加载则返回 true ,如果扩展没有加载,则返回 false 。

在 PHP-FPM 的网页中,我们可以通过 phpinfo() 函数来查看当前 PHP 的状态及扩展相关信息。而在 CLI 命令行脚本中,我们可以使用 php -m 命令来查看已加载的扩展。

动态加载扩展

首先,我们在 php.ini 中关闭 redis 扩展的加载,并且同时需要打开 enable_dl=1 ,这样,我们就可以使用 dl() 函数来动态加载一个扩展了。

dl("redis");
    
echo extension_loaded("redis");
    
// 1

没错, dl() 函数正是用来动态加载扩展的一个函数。不过它的使用是有许多限制的,这也并不是一个安全的函数。所以在 PHP7 中,它在 php.ini 的配置 enable_dl 已经是默认关闭的了。我们在生产环境也尽量不要使用这种方式进行扩展的加载。

另外,这个函数在 PHP7 中仅对 CLI 环境有效。也就是说,在 PHP-FPM 的网页环境下,这个函数是没用的,即使已经打开了 php.ini 中的 enable_dl 。

扩展加载的目录是以 PHP 默认的扩展目录为基础进行加载的,在 windows 环境下注意扩展名为 .dll 文件。当扩展加载失败时,不仅这个函数会返回 false ,同时还会产生一条 E_WARNING 的错误消息。最后,在 PHP 安全模式下,这个函数也同样是无法使用的。

综上所述,在生产环境中,我们还是尽量不要使用动态加载扩展的能力。这个可以当成我们的一个学习资料,在自己本机电脑上不想一次加载太多扩展的情况下使用,当需要测试某些功能而需要某些特殊的扩展时,再考虑使用这个功能进行本地的测试。

测试代码:

?php

echo extension_loaded("redis");
    

dl("redis");
    

echo extension_loaded("redis");
    

以上就是关于“动态加载PHP扩展的方法是什么”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 动态加载PHP扩展的方法是什么
本文地址: https://pptw.com/jishu/652214.html
PHP数据库连接持久化怎么理解,有何用处 springboot大文件上传如何处理,分别有哪几种方式

游客 回复需填写必要信息