Jak mogę sprawdzić, czy serwer jest w stanie obsłużyć żądania SOAP w czasie wykonywania? Muszę to zweryfikować, zanim mój skrypt zostanie uruchomiony.Jak mogę sprawdzić, czy serwer jest w stanie obsłużyć żądania SOAP?
Odpowiedz
W PHP, aby sprawdzić, czy SOAP włączone lub nie korzystać z wbudowanych w funkcji class_exists()
:
var_dump(class_exists("SOAPClient"));
To również może być łatwy do sprawdzenia każdy z modułów klas.
Dlaczego ta odpowiedź została odrzucona? Jest dużo bardziej bezpośredni i użyteczny niż rozwiązania 'phpinfo'", a może nawet bardziej bezpośredni niż 'extension_loaded'. – meustrus
Ponieważ OP chce sprawdzić SOAP w czasie wykonywania, zanim jego skrypt zostanie uruchomiony. Zobacz pytanie. – Epoc
Można użyć:
if (extension_loaded('soap')) {
// Do things
}
Można użyć skryptu phpinfo zobaczyć jest zainstalowany SOAP.
http: // [your-domain.com] /phpinfo.php
w pliku PHP:
<?php
echo phpinfo();
?>
a następnie spojrzeć na mydło i widać, jeśli jest zainstalowana i włączona SOAP
Pakiety PEAR nie są wymienione w phpinfo(), więc jeśli "mydło" nie pojawi się na stronie "test.php", jest to normalne!
przykład kodu byłby miły, aby pomóc ankieterowi lepiej zrozumieć twoją odpowiedź :) – zpontikas
Hmm ... Jestem nowy i jestem zły: Próbowałem tego w pliku "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();
}
?>
I widziałem siebie patrząc na stronę "phpinfo()" z paragrafem "mydło".
Przepraszamy za błędną interpretację.
Aby zainstalować SOAP:
Sprawdź "php.ini" plik, poszukaj "rozszerzeniem".
Powinieneś znaleźć wiersz:
extension=php_soap.dll
lub ;extension=php_soap.dll
";" znaczy, że jest komentowany.
Odkomentuj to.
Jeśli nie znalazłeś linii, umieść ją tam.
extension=php_soap.dll
Upewnij się, że plik dll faktycznie znajduje się w domyślnym folderze php/ext
. Jeśli tak nie jest, sprawdź na phpinfo() czy twoja wersja to VC6, VC9 z VC11, przejdź do strony pobierania php: http://windows.php.net/download#php-5.6 i uzyskaj korespondującą wersję pliku zip php.
Ukradnij ich "php_soap.dll" z folderu/ext i umieść go w swoim.
Wszystko gotowe!
Zrestartuj serwery, a następnie przejdź do strony testowej phpinfo(), aby sprawdzić, czy działa.
Powodzenia. Uwaga: prosty test phpinfo().plik php:
<php
echo phpinfo();
?>
Od SSH można uruchomić:
php -i | grep soap
w wierszu polecenia wpisz następujące polecenie:
>> php -r 'echo (extension_loaded("soap")?"LOADED\n":"not loaded\n");'
Myślę, że nie można stwierdzić, czy serwer ma SOAP włączona. Co jeśli możesz zrobić, to dowiedzieć się, czy serwer ma uruchomioną określoną usługę SOAP. – Lobo