好久沒寫blog,平常都把內容記錄到印象筆記裡去了。 但是我被這個問題困擾了很久,度娘、Google翻遍了,大部分答案都無法解決我的問題。
問題詳細情況如下,php SOAP接口,間歇性出現Soap WSDL Error - "failed to load external entity" 這個錯誤。問題的關鍵是“間歇性”,如果一直報錯就比較容易檢查錯誤。
網路上的解決方案,要嘛是開啟openssl,要嘛是改成no wsdl模式來做,以上方法都無法解決我的問題。
最後,在zend的官方論壇上找到了一個方法,並且來源指向是php手冊,還是那句話,碰到問題多看手冊。 ORZ 手冊!
If libxml_disable_entity_loader() has been called already, add before each SoapClient instantiation:
libxml_disable_entity_loader(false);
在所有SOAPClient初始化前(頁面頂部),加上這篇 libxml_disable_entity_loader(false);