PHP错误提示SOAP-ERROR: Parsing WSDL: Couldn't load from的解决办法
PHP使用 SOAP 处理接口项目时,线下测试环境是没问题的,移植到线上后就报错了。
错误提示如下:
Fatal error:Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://xxxx.com/MXSE_beta.wsdl'
各种搜索后,我们来一一排查各种方案。
首先打印一下接口,看能否正常访问
echo file_get_contents($wsdl); die();
接着排查一下 PHP 的 openssl 扩展是否开启,查看 php.ini 如下配置,去掉前边的 ; 即可。
;extension=php_openssl.dll
最后方案也可尝试一下,就是在调用 api 文件的开头处,添加如下代码
libxml_disable_entity_loader(false);
禁止从外部加载XML实体,设为true就是禁止,目的是防止XML注入攻击。