我有一个带有 url 变量的 XML 文件,其中包含特殊字符,例如 &、= 等
我有两个问题:
A. 由于 XML 中不允许使用特殊字符,我应该如何输入 URL?我应该对 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 文件:
<?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>
请注意,我已经以编码形式替换了 URL,其中原始 & 被其代码替换。我也尝试不使用 urldecode 但我只能正确地得到 echo $url 。
如果我将 URL 复制粘贴到 curl_init($url) 的单引号下,一切正常。
但是,当我对 url 进行编码并将其放入 XML 并解码回并将其放入 curl_init($url) 时,它不起作用。
当我回显解码后的 $url (见上文)时,我会显示正确的 url 列表。我究竟做错了什么 ?我阅读了密切相关的帖子,但无法解决这个问题。