SOAP 解析錯誤:無法載入外部實體
在使用PHP 進行SOAP Web 服務整合的上下文中,出現一條錯誤訊息,指出「SOAP -錯誤:解析WSDL:無法從「http://localhost/MyRegistration/login.xml」載入...無法載入外部實體「http://localhost/MyRegistration/login.xml」表示有問題存取或解析指定的WSDL 檔案。
根本原因:
通常,此錯誤是由於以下原因之一造成的:
故障排除:
1.驗證WSDL URL:
確保SOAPClient 構造函數中提供的URL (此處為「http://127.0.0.1/MyRegistration/login.wsdl」)指向WSDL 檔案的正確位置。或者,嘗試使用文件的完全限定路徑。
2.停用外部實體載入限制:
預設情況下,出於安全原因,PHP 可能會限制對外部實體的存取。若要停用此限制,您可以將以下行新增至PHP 設定(php.ini):
allow_url_fopen = On
3.檢查WSDL 有效性:
驗證WSDL文件(login.wsdl) 的內容,以確保它是格式良好的XML,並包含有效SOAP 契約所需的元素和屬性。使用線上 XML 驗證器或手動檢視文件。
4.其他注意事項:
安全影響注意事項:
停用外部實體載入限制可能會引入安全漏洞。建議在解決問題後啟用它或相應地實施替代安全措施。
以上是為什麼我在 PHP 中收到「SOAP-ERROR: Parsing WSDL: Couldn\'t load from ...」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!