30

如何检查服务器是否能够在运行时处理 SOAP 请求?我需要在我的脚本执行之前验证它。

4

8 回答 8

36

您可以使用:

if (extension_loaded('soap')) {
  // Do things
}

http://php.net/manual/en/function.extension-loaded.php

于 2012-09-15T10:15:46.627 回答
17

从 SSH 你可以运行:

php -i | grep Soap

这将返回类似:

Soap Client => enabled
Soap Server => enabled
于 2016-01-05T10:41:46.590 回答
14

在 PHP 中检查是否启用了 SOAP 使用内置函数class_exists()

var_dump(class_exists("SOAPClient"));

用户也可以检查任何模块类。

于 2012-05-25T07:39:58.487 回答
6

在命令行中键入以下内容:

>>  php -r 'echo (extension_loaded("soap")?"LOADED\n":"not loaded\n");'
于 2017-09-01T11:46:11.173 回答
4

在一个 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
于 2014-03-18T13:15:53.637 回答
4

嗯...我是新手,我很糟糕:我在“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();
?>
于 2015-04-17T08:25:31.887 回答
1

PEAR 包没有在 phpinfo() 中列出,所以如果“soap”没有出现在你的“test.php”页面上,这是正常的!

于 2015-04-17T07:42:01.057 回答
0

您可以使用 phpinfo 脚本查看是否安装了 SOAP。

http://[your-domain.com]/phpinfo.php

于 2013-03-04T22:05:33.120 回答