[英]Issue with & in URL using simplexml_load_file
URL包含“&”符號時, simplexml_load_file()
不會加載XML文件。 我嘗試了兩個帶有和不帶有“&”號的示例:
$source1 = simplexml_load_file("http://www.isws.illinois.edu/warm/data/outgoing/nbska/datastream.aspx?id=ncu");
print_r($source1); //works
$source2 = simplexml_load_file("http://forecast.weather.gov/MapClick.php?lat=38.8893&lon=-77.0494&unit=0&lg=english&FcstType=dwml");
print_r($source2); //no output
第一個示例很好用,因為它不包含“&”號,但是第二個示例卻不起作用,因為它包含“&”號。
我在Solr的網址中引用了帶有&(&)的simplexml_load_file,而在網址中引用了simplexml_load_file& 符,但是它不起作用。
問題不是URL中的“&”號。 問題在於,weather.gov似乎阻止了此類請求。 他們將不允許沒有設置用戶代理的用戶。
解決此問題的最快方法是在PHP中設置UserAgent,您可以通過將以下代碼放在xml調用上方來實現:
ini_set('user_agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20100101 Firefox/9.0');
但是,我建議使用CURL而不是simplexml_load_file,因為simplexml_load_file通常受服務器配置的限制。 如果要使用curl進行此操作,則需要執行類似第一個答案的操作: SimpleXML用戶代理
我已經在本地進行了測試,僅通過指定用戶代理即可使其正常運行。
編輯:另外,歡迎您! 確保經常投票; D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.