2012-05-25 2 views
20

Как проверить, способен ли сервер обрабатывать запросы SOAP во время выполнения? Мне нужно проверить его до выполнения моего скрипта.Как проверить, способен ли сервер обрабатывать запросы SOAP

+0

Я думаю, что вы не можете сказать, если сервер имеет SOAP включен. Что делать, если вы можете это выяснить, если сервер имеет определенную службу SOAP. – Lobo

ответ

11

В PHP, чтобы проверить, включен ли SOAP или не использовать встроенные функции class_exists():

var_dump(class_exists("SOAPClient"));

Это также может быть пользователем, чтобы проверить любого из классов модулей.

+1

Почему этот ответ был проголосован? Это гораздо более прямое и удобное использование, чем «phpinfo», и, возможно, даже более прямое, чем 'extension_loaded'. – meustrus

+0

Поскольку OP хочет проверить SOAP во время выполнения до выполнения его скрипта. См. Вопрос. – Epoc

1

Вы можете использовать скрипт phpinfo, чтобы увидеть это устанавливается SOAP.

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

3

в PHP файле:

<?php 
echo phpinfo(); 
?> 

, а затем искать SOAP, и вы увидите, если установлен SOAP и включен

1

PEAR-пакеты не указаны в phpinfo(), поэтому, если «soap» не отображается на странице «test.php», это нормально!

+1

Пример кода был бы хорош, чтобы помочь дознанию понять ваш ответ лучше :) – zpontikas

2

Хм ... Я новый, и я плохой: Я пробовал это в файле "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(); 
?> 
7

С SSH вы можете запустить:

php -i | grep soap 
1

в командной строке введите следующую команду:

>> php -r 'echo (extension_loaded("soap")?"LOADED\n":"not loaded\n");'