Search code examples
soapsoap-clientphpphp-5.2

SoapClient error fallback in PHP


In PHP, if you try to instantiate a new SoapClient, and the WSDL is not accessible (server down or whatever), a PHP fatal error is thrown:

Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://example.com/servlet/app/SomeService?wsdl' : failed to load external entity "http://example.com/servlet/app/SomeService?wsdl"

Fatal errors in PHP, as far as I know, are not recoverable.

Is there any way to fallback from this? Can this fatal error somehow be avoided?


Edit: I should say that I am running on PHP 5.2, if it makes any difference.


Solution

  • This has already been discussed :

    Rasmus himself proposed the following solution:

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