我曾與含有這種特殊字符&一個url變量中的XML文件,=等通過URL特殊字符捲曲
我有兩個問題:
A.由於特殊字符是不是允許使用XML,我應該如何輸入URL?我應該編碼的網址,然後把XML文件?
B.假設我編碼url並將其放入XML文件中,然後在php腳本中讀取。
$fxml = simplexml_load_file("mylist.xml");
$fxml -> getName();
foreach($fxml->children() as $mylist)
{
$url = $mylist -> url;
$url = urldecode(url);
echo $url;
$feed = curl_init($url);
curl_setopt($feed, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($feed, CURLOPT_HEADER, 0);
$xml = simplexml_load_string(curl_exec($feed));
curl_close($feed);
//---------------------
//---------------------
}
下面是示例XML文件:我已經取代了原來的地方是&通過它的代碼替換編碼形式的URL
<?xml version="1.0" encoding="UTF-8"?>
<feed>
<mylist>
<name>
SISC
</name>
<url>
http://epubs.siam.org/action/showFeed?ui=0&mi=3chvf9&ai=s0&jc=sjnaam&type=etoc&feed=rss
</url>
</mylist>
</feed>
通知。我也嘗試不使用urldecode,但我只正確地得到echo $ url。
如果我將url粘貼到curl_init($ url)的單引號下,everthing就可以工作。
但是,當我編碼的網址,並把它放在XML和解碼回來,並把它放在curl_init($ url),它不起作用。
當我回應解碼的$ url(見上面),然後我得到正確的URL列表顯示。我究竟做錯了什麼 ? 我讀了密切相關的帖子,但無法解決這個問題。
沒有成功。我添加了上面的XML文件。我使用了轉換器來更改&到XML代碼。我嘗試不使用urldecode,但沒有成功。如果我複製粘貼在curl_init中回顯的$ url一切正常。 – user1997305
你不應該需要urldecode。我懷疑你可能在數據中包含URL的空白。 – Quentin
是的,你知道了。在我的XML中,我寫了,url和 分別在三行上,這就導致了url的空白。一旦我把它們全部保存在一行 url_link 一切正常。非常感謝! PS:爲了清晰和簡單的複製粘貼(在emacs中),我想將url保存在單獨的行中。 –
user1997305