Chr*_*ris 4 php xml url ampersand
我正在使用XML提要,该提要作为其中一个节点,具有类似于以下内容的URL字符串:
http://aflite.co.uk/track/?aid=13414&mid=32532&dl=http://www.google.com/&aref=chris
Run Code Online (Sandbox Code Playgroud)
我知道&符号会在XML中引起很多问题,应该通过使用&而不是裸体来转义&.因此我将php更改为如下所示:
<node><?php echo ('http://aflite.co.uk/track/?aid=13414&mid=32532&dl=http://www.google.com/&aref=chris'); ?></node>
Run Code Online (Sandbox Code Playgroud)
但是,当生成XML提要时,字符串将显示为full &
,因此实际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>
Run Code Online (Sandbox Code Playgroud)
&对于在 XML 文档中转义 & 符号是正确的。你给出的例子应该有效。
您声明它不起作用,但您没有说明您正在使用什么应用程序,或者它以什么方式不起作用。单击该链接时到底会发生什么?&这些字符串最终会出现在浏览器的 URL 字段中吗?如果是这种情况,听起来您用来查看 XML 的软件有问题。您是否尝试过查看另一个应用程序中的 XML 以查看问题是否一致?
回答你的问题的最后部分:%26绝对不适合你——如果你的 URL 参数需要包含&符号,这就是你应该使用的。例如aref=chris,在 中,如果名称chris是一个 & 符号(假设用户名是chris&bob),那么需要使用该 & 符号进行转义%26,以便 URL 解析器不会将其视为启动新的 URL 参数。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
12236 次 |
| 最近记录: |