【发布时间】:2011-10-10 02:46:11
【问题描述】:
有人知道吗?那个东西是默认安装的。但是有没有一种简单的方法来检查是否安装了扩展?
我检查了 simplexml_load_string 是否对我可用,但是 simplexml 怎么没有在 php.ini 中列出
【问题讨论】:
-
phpinfo();会告诉你当前安装了哪些模块..
有人知道吗?那个东西是默认安装的。但是有没有一种简单的方法来检查是否安装了扩展?
我检查了 simplexml_load_string 是否对我可用,但是 simplexml 怎么没有在 php.ini 中列出
【问题讨论】:
phpinfo(); 会告诉你当前安装了哪些模块..
还有另一种方法。你可以创建一个php页面
<?php
echo phpinfo();
?>
您可以在此处查看启用或禁用的简单 XML。
【讨论】:
这对我有用...
extension_loaded('simplexml')
示例:
if (extension_loaded('simplexml')) {
echo "all good, extension is installed";
} else{ echo "snip snap! no cigar";}
【讨论】:
在命令行上使用这个命令:
php -i | grep -i simplexml
结果应该是这样的:
SimpleXML
Simplexml 支持 => 启用
【讨论】:
如果您的盒子有命令行访问权限;
要么使用你的操作系统的包管理系统,要么运行php -m,它应该列出PHP 知道的所有已安装模块。
任何已安装但未在 php.ini 或其他任何地方注册为扩展的模块都不会显示。
需要注意的是,运行此命令只会告诉您为 PHP 的 CLI 二进制/配置启用了哪些扩展。这通常(但可能并不总是)与 Apache/FPM 二进制/配置启用的内容相匹配
【讨论】:
php -m 命令行选项。创建一个 PHP 脚本并为此必须打开一个 Web 浏览器是多余的。
我使用的一种解决方案:
if(class_exists('XMLReader')){
}elseif(function_exists('simplexml_load_file')){
//simplexml available
}else{
}
【讨论】:
echo '<pre>';
print_r( get_loaded_extensions());
echo '</pre>';
这将显示一个扩展列表。如果您希望您的应用程序巧妙地告诉您的用户他们的设置不会运行您的代码,那么只需使用 in_array()。
编辑无论如何,在 5.2.6 上的 win32 上都是这种情况。
【讨论】: