簡體   English   中英

使用simplexml_load_file在URL中出現&問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM