Я работаю над скриптом с PHP4, который использует NuSOAP. Теперь я пытаюсь перенести это на PHP5 и использовать встроенную поддержку SOAP.
$wsdlPath = ""; // I have obviously set these variables to something meaningful, just hidden for the sake of security
$apiPath = "";
$username = "";
$password = "";
// PHP5 style
$client = new soapclient($wsdlPath, array('login'=>username,
'password'=> $password,
'soap_version'=> SOAP_1_2,
'location'=> $apiPath,
'trace'=> 1));
// PHP4/NuSOAP style
$client = new soapclient($wsdlPath, true);
client->setEndpoint($apiPath);
$client->setCredentials($username, $password);
$client ->loadWSD);
Версия PHP5 выдает следующую трассировку стека исключений:
EXCEPTION=SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://external-nbb.napi.norwegian.no.stage.osl.basefarm.net/api/napi1300?wsdl' in /home/eisebfog/public_html/database/norwegian.php:31
Stack trace:
#0 /home/eisebfog/public_html/database/norwegian.php(31): SoapClient->SoapClient('http://external...', Array)
#1 /home/eisebfog/public_html/database/index.php(53): require_once('/home/eisebfog/...')
#2 {main}
Теперь, когда версия NuSOAP работает, а чистый PHP5 — нет, не требуется нейрохирург, чтобы понять, что я делаю что-то не так. У меня есть доступ к файлу .htaccess, и с помощью phpinfo() я удостоверился, что правильно запускаю NuSOAP и запускаю PHP5, когда должен, и PHP4/Nusoap, когда должен.
По сути, я не очень хорошо разбираюсь в веб-сервисах и мыле, но если у кого-то есть какие-либо идеи, я был бы признателен за любую информацию о том, что я делаю неправильно и как я могу перейти на родное мыло в PHP5. Кстати, причиной, по которой я хочу этот шаг, в первую очередь является предполагаемая экономия ресурсов в родном мыле. Я был бы признателен за любые ссылки на тесты между этими двумя решениями.