我正在使用php来查看其中包含URL的XML文件。 URL看起来像这样:
https://site.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1
当我回显URL时,“& curren”显示为“¤”(AKA#164,A4或货币符号),并且链接不起作用。即使没有结束分号,也会发生这种情况。什么是使“& curren”字面显示最干净的方法?
答案 0 :(得分:8)
有趣的是我刚才遇到了同样的问题,我找到了这个答案。但是,我发现了另一种可能更好的解决方案!
只需将变量放在查询字符串的开头,就可以完全避免使用& curren。
执行:
https://site.com/bacon_report?currentDimension=2&Id=1&report=1¶m=1
而不是:
https://site.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1
答案 1 :(得分:7)
使用php函数urlencode:
urlencode("https://site.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1"
将输出
https%3A%2F%2Fsite.com%2Fbacon_report%3FId%3D1%26report%3D1%26currentDimension%3D2%26param%3D1
答案 2 :(得分:6)
这里的问题是逃避 - 你需要逃避"&"字符。在XML中所有特殊字符,例如<,>,',"和&应该逃脱。
正确逃脱
https://example.com/bacon_report?Id=1&report=1&currentDimension=2&param=1
..就像在HTML中一样:
<a href="https://example.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1">WRONG - no escaping</a>
<a href="https://example.com/bacon_report?Id=1&report=1&currentDimension=2&param=1">CORRECT - correct escape sequence</a>
所以 - 最简洁的展示方式&#34;&amp; curren&#34;在HTML / XML中正确地逃避&符号,并将其呈现为&#34;&amp; amp; curren&#34;。
答案 3 :(得分:0)
我认为在这种情况下最好使用htmlentities因为你得到了urlencode
https%3A%2F%2Fexample.com%2Fbacon_report%3FId%3D1%26report%3D1%26currentDimension%3D2%26param%3D1
并且在应用urldecode时,您仍然会有&amp; curren符号
网址与htmlentities一样干净
https://example.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1
答案 4 :(得分:0)
我在处理技术文档(在Markdown中转换为HTML)时遇到了这个问题。
为解决该问题,我使用了zero-width space character,并从这些括号()之间复制并粘贴了它。这样一来,似乎没有空间,可以包含以下内容而没有任何问题:
/search?query=1¤tLonLat=-74.600291,40.360869