如何动态查看及加载PHP扩展

admin3年前PHP教程38
目录
查看是否已经加载了扩展动态加载扩展测试代码:

在编译并完成 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扩展的详细内容,更多关于动态查看及加载PHP扩展的资料请关注其它相关文章!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

韩国高防服务器租用多少钱受什么因素影响

韩国高防服务器的租用价格受以下因素的影响:1.服务器配置:服务器配置是影响租用价格的主要因素之一。通常来说,配置越高、性能越好的服务器租用价格会越高。2.使用时间:租用时间是影响价格的另一个因素。通常...

租韩国服务器多少钱一个月

租韩国服务器多少钱一个月?租用韩国服务器的价格是由多种因素共同影响的,以下是一些主要的因素:服务器性能:服务器的性能决定了它的承载能力和处理速度,通常来说,性能越高的服务器租用费用就越贵。网络带宽:网...

香港高防服务器哪家比较好

香港高防服务器哪家比较好?选择一家好的香港高防服务器服务提供商需要考虑多方面因素,以下是一些主要因素:网络质量:选择一家好的香港高防服务器服务提供商需要优先考虑其网络质量。网络质量包括网络带宽、网络延...

香港拨号vps速度变慢的原因有哪些

香港拨号vps速度变慢的原因有:1、主机商采用的网络主干线出现国际路由故障,导致访问速度变慢;2、后台运行程序过载太高,导致访问速度变慢;3、带宽资源不足或超载,导致香港拨号VPS访问速度变慢;4、访...

浅谈减少Hyperf框架的扫描时间

目录原因解决办法写在最后原因Hyperf框架为了防止用户更新组件后,代理缓存没有更新导致启动报错。增加了以下钩子。{    "scripts"...

详解php处理大并发大流量大存储

一、判断大型网站的标准1、pv(page views)网页的浏览量概念 一个网站所有的页面,在24小时内被访问的总的次数。千万级别,百万级别,2、uv值(unique vistor)独立访客概念:一个...