Как проверить, способен ли сервер обрабатывать запросы SOAP во время выполнения? Мне нужно проверить его до выполнения моего скрипта.Как проверить, способен ли сервер обрабатывать запросы SOAP
ответ
В PHP, чтобы проверить, включен ли SOAP или не использовать встроенные функции class_exists()
:
var_dump(class_exists("SOAPClient"));
Это также может быть пользователем, чтобы проверить любого из классов модулей.
Вы можете использовать:
if (extension_loaded('soap')) {
// Do things
}
Вы можете использовать скрипт phpinfo, чтобы увидеть это устанавливается SOAP.
HTTP: // [your-domain.com] /phpinfo.php
в PHP файле:
<?php
echo phpinfo();
?>
, а затем искать SOAP, и вы увидите, если установлен SOAP и включен
PEAR-пакеты не указаны в phpinfo(), поэтому, если «soap» не отображается на странице «test.php», это нормально!
Пример кода был бы хорош, чтобы помочь дознанию понять ваш ответ лучше :) – zpontikas
Хм ... Я новый, и я плохой: Я пробовал это в файле "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, VC9 VC11, перейдите на страницу загрузки php: http://windows.php.net/download#php-5.6 и получите соответствующую версию php zip-файла.
Украдите свой «php_soap.dll» из папки/ext и поместите его в свой.
Вы все настроены!
Перезагрузите свои серверы, затем перейдите на свою тестовую страницу phpinfo(), чтобы проверить, не работает ли она.
Удачи.
Примечание: phpinfo() простой тест.PHP файл:
<php
echo phpinfo();
?>
С SSH вы можете запустить:
php -i | grep soap
в командной строке введите следующую команду:
>> php -r 'echo (extension_loaded("soap")?"LOADED\n":"not loaded\n");'
Я думаю, что вы не можете сказать, если сервер имеет SOAP включен. Что делать, если вы можете это выяснить, если сервер имеет определенную службу SOAP. – Lobo