我有一个XML文件,其中包含一个包含特殊字符(如&,=等)的url变量
我有两个问题:
一个。由于 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,但我只能正确获得回声$url。
如果我将网址复制粘贴在单引号下的 curl_init($url ),一切都有效。
但是当我对 url 进行编码并将其放入 XML 中并解码并放入 curl_init($url )时,它不起作用。
当我回显解码的$url(见上文)时,我会显示正确的 url 列表。我做错了什么?我阅读了密切相关的帖子,但无法解决这个问题。
为了举例起见,
让我们使用 &
。
如果您希望 URL 的数据&
(而不是指示新查询字符串键/对的开始)。然后,您需要在将其添加到URL之前对其进行URL编码(如%26
)。
如果您希望在XML文档的数据中&
(例如,如果数据是带有查询字符串的URL),则需要对其进行XML编码(如&
)。您应该使用 XML 库(而不是字符串抨击或模板化)构造 XML,库将为您处理它。
在将 XML 用作 URL 之前,您不必urldecode
从 XML 中取出的数据。