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

 更新时间:2021年04月26日 11:55:37   作者:硬核项目经理  
这篇文章主要介绍了如何动态查看及加载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扩展的详细内容,更多关于动态查看及加载PHP扩展的资料请关注脚本之家其它相关文章!

相关文章

  • Yii视图CGridView列表用法实例分析

    Yii视图CGridView列表用法实例分析

    这篇文章主要介绍了Yii视图CGridView列表用法,结合实例形式分析了CGridView列表的视图及功能实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Yii2框架dropDownList下拉菜单用法实例分析

    Yii2框架dropDownList下拉菜单用法实例分析

    这篇文章主要介绍了Yii2框架dropDownList下拉菜单用法,结合实例形式分析了Yii框架中dropDownList下拉菜单的定义、实现方法与使用技巧,需要的朋友可以参考下
    2016-07-07
  • PHP常用编译参数中文说明

    PHP常用编译参数中文说明

    这篇文章主要介绍了PHP常用编译参数中文说明,本文用详细的中文注解了PHP编译参数的作用,需要的朋友可以参考下
    2014-09-09
  • Laravel统一错误处理为JSON的方法介绍

    Laravel统一错误处理为JSON的方法介绍

    这篇文章主要给大家介绍了关于Laravel统一错误处理为JSON的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Yii框架连表查询操作示例

    Yii框架连表查询操作示例

    这篇文章主要介绍了Yii框架连表查询操作,结合实例形式分析了Yii框架连表查询常用方法及相关使用技巧,需要的朋友可以参考下
    2019-09-09
  • 简单介绍PHP非阻塞模式

    简单介绍PHP非阻塞模式

    非阻塞模式是指利用socket事件的消息机制,Server端与Client端之间的通信处于异步状态,本文给大家介绍php非阻塞模式,感兴趣的朋友一起学习吧
    2016-03-03
  • php 猴子摘桃的算法

    php 猴子摘桃的算法

    这篇文章主要介绍了php 猴子摘桃的算法,需要的朋友可以参考下
    2017-06-06
  • wampserver改变默认网站目录的办法

    wampserver改变默认网站目录的办法

    大家在做php项目时,很多项目都会用到wampserver。WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单“开启/关闭”上点点就搞定,省去了修改配置文件的麻烦,这里就简写成wamp。
    2015-08-08
  • SQL+HTML+PHP 一个简单论坛网站的综合开发案例(注册、登录、注销、修改信息、留言等)

    SQL+HTML+PHP 一个简单论坛网站的综合开发案例(注册、登录、注销、修改信息、留言等)

    这篇文章主要介绍了SQL+HTML+PHP 一个简单论坛网站的综合开发案例(注册、登录、注销、修改信息、留言等),需要的朋友可以参考下
    2022-12-12
  • PHP中static关键字以及与self关键字的区别

    PHP中static关键字以及与self关键字的区别

    这篇文章主要介绍了PHP中static关键字以及与self关键字的区别,本文讲解了static关键字的定义、迟绑定(Late Static Bindings)、以及与self关键字的区别等内容,需要的朋友可以参考下
    2015-07-07

最新评论