如何检查服务器是否能够在运行时处理 SOAP 请求?我需要在执行脚本之前对其进行验证。
您可以使用:
if (extension_loaded('soap')) {
// Do things
}
http://php.net/manual/en/function.extension-loaded.php
从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");'
嗯...我是新人,我很糟糕:我在"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:
检查您的"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 zip文件的相应版本。
从他们的/ext 文件夹中窃取他们的"php_soap.dll"并将其放入您的文件夹中。
一切就绪!
重新启动服务器,然后转到 phpinfo() 测试页面以检查它是否有效。
祝你好运。
注意:phpinfo() 简单测试.php文件 :
<php
echo phpinfo();
?>
在 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
PEAR 软件包没有在 phpinfo() 中列出,所以如果 "soap" 没有出现在你的 "test.php" 页面上,这是正常的!
您可以使用 phpinfo 脚本查看是否安装了 SOAP。
http://[your-domain.com]/phpinfo.php