PHP中的SoapClient错误回退

Yuv*_*dam 10 php soap soap-client php-5.2

在PHP中,如果您尝试实例化一个新的SoapClient,并且无法访问WSDL(服务器关闭或其他),则会抛出PHP致命错误:

致命错误:SOAP-ERROR:解析WSDL:无法从" http://example.com/servlet/app/SomeService?wsdl "加载:无法加载外部实体" http://example.com/servlet/app/SomeService?wsdl "

据我所知,PHP中的致命错误无法恢复.

有什么方法可以退缩吗?这种致命错误能否以某种方式避免?


编辑:我应该说我在PHP 5.2上运行,如果它有任何区别.

Yuv*_*dam 13

这已经讨论过了:

拉斯穆斯自己提出了以下解决方案:

<?php  
try {  
    $x = @new SoapClient("non-existent.wsdl",array("exceptions" => 1));  
} catch (SoapFault $E) {  
    echo $E->faultstring; 
}  
echo "ok\n";
Run Code Online (Sandbox Code Playgroud)

  • 但是,当我向下看时,我确实找到了关于禁用xdebug的说明,并允许上述工作. (2认同)