php - 创建 URL 字符串时 XML 中的 & 符号问题

标签 php xml url ampersand

我正在使用一个 XML 提要,作为其节点之一,它有一个类似于以下的 URL 字符串:

http://aflite.co.uk/track/?aid=13414&mid=32532&dl=http://www.google.com/&aref=chris

我知道 & 符号会在 XML 中引起很多问题,应该使用 & 而不是裸 & 来转义。因此,我将 php 更改为如下内容:

<node><?php echo ('http://aflite.co.uk/track/?aid=13414&amp;mid=32532&amp;dl=http://www.google.com/&amp;aref=chris'); ?></node>

然而,当这生成 XML 提要时,字符串会以完整的 & 出现 所以实际的 URL 不起作用。如果这是一个非常基本的误解,我们深表歉意,但一些指导会很好。

我也尝试过使用 %26 而不是 & 但仍然遇到同样的问题。

最佳答案

如果您要向 XML/HTML 中插入内容,您应该始终使用 htmlspecialchars功能。这会将您的字符串转义为正确的 XML 语法。

但是你遇到了第二个问题。 您已将第二个网址添加到第一个网址。 这也需要转义为 url 语法。 为此你需要使用 urlencode .

<node><?php echo htmlspecialchars('http://aflite.co.uk/track/?aid=13414&mid=32532&aref=chris&dl='.urlencode('http://www.google.com/')); ?></node>

关于php - 创建 URL 字符串时 XML 中的 & 符号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6519457/

相关文章:

javascript - 将javascript中使用encodedURI编码的url解码为C#

php - Laravel Eloquent Join vs Inner Join?

java - 使用java从复杂的xml中读取值

javascript - 您如何使用 Javascript 或 CSS 设置网页上显示的 XML 文档的样式?

java - 是否有任何工具或库可以将 YAML 或 XML 文件转换为 Java 代码?

android - 来自 URL 的图像未显示在 ImageView 中,我已经尝试了所有我能找到的

c# - 如何读取包含未编码数据的查询字符串?

javascript - Jquery 插件 tinysort 不工作,不知道为什么

php - 在 PHP 中返回 JSON 消息

php - 单选按钮 php mysql