如何检查服务器是否能够处理 SOAP 请求


How can I check whether the server is able to handle SOAP requests

如何检查服务器是否能够在运行时处理 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