如何检查服务器是否能够在运行时处理 SOAP 请求?我需要在我的脚本执行之前验证它。
8 回答
您可以使用:
if (extension_loaded('soap')) {
// Do things
}
从 SSH 你可以运行:
php -i | grep Soap
这将返回类似:
Soap Client => enabled
Soap Server => enabled
在 PHP 中检查是否启用了 SOAP 使用内置函数class_exists()
:
var_dump(class_exists("SOAPClient"));
用户也可以检查任何模块类。
在命令行中键入以下内容:
>> php -r 'echo (extension_loaded("soap")?"LOADED\n":"not loaded\n");'
在一个 php 文件中:
<?php
echo phpinfo();
?>
然后查找 SOAP,您将看到 SOAP 是否已安装并启用
编辑:使用 php CLI(命令行界面)的其他解决方案要小心,因为您没有用于 CLI 和 Web 服务器(例如 apache)的相同 php.ini。因此它可能会有所不同。
那么如果你使用 apache 并且想查看是否启用了 soap,最好在命令行中指明 apache php.ini 文件,例如:
php -c /etc/php/apache2/php.ini -i | grep Soap
嗯...我是新手,我很糟糕:我在“test.php”文件中尝试过这个。
<?php
if (extension_loaded('soap'))
{
echo phpinfo();
}
else //will redirect to sth else so you know it doesn't work
{
header("Location: http://localhost/index.html");
die();
}
?>
我看到自己正在查看一个“phpinfo()”页面,其中包含一个名为:“soap”的段落。
很抱歉造成误解。
要安装 SOAP:
检查您的“php.ini”文件,寻找“扩展名”。
你应该找到一行:
extension=php_soap.dll
或;extension=php_soap.dll
“;” 表示已评论。
取消注释它。
如果你没有找到线,然后把它放在那里。
extension=php_soap.dll
确保 dll 文件实际上位于默认文件夹php/ext
中。如果不是,检查phpinfo()是不是你的版本是VC6,VC11的VC9,到php下载页面: http: //windows.php.net/download#php-5.6获取对应版本的php压缩文件。
从他们的 /ext 文件夹中窃取他们的“php_soap.dll”并将其放入您的文件夹中。
你都准备好了!
重新启动您的服务器,然后转到您的 phpinfo() 测试页面以检查它是否有效。
祝你好运。
注意:phpinfo() 简单的 test.php 文件:
<php
echo phpinfo();
?>
PEAR 包没有在 phpinfo() 中列出,所以如果“soap”没有出现在你的“test.php”页面上,这是正常的!
您可以使用 phpinfo 脚本查看是否安装了 SOAP。
http://[your-domain.com]/phpinfo.php