如何让¤以字面显示,而不是作为HTML实体显示

时间:2013-10-29 22:28:35

标签: php html url

我正在使用php来查看其中包含URL的XML文件。 URL看起来像这样:

https://site.com/bacon_report?Id=1&report=1&currentDimension=2&param=1

当我回显URL时,“& curren”显示为“¤”(AKA#164,A4或货币符号),并且链接不起作用。即使没有结束分号,也会发生这种情况。什么是使“& curren”字面显示最干净的方法?

5 个答案:

答案 0 :(得分:8)

有趣的是我刚才遇到了同样的问题,我找到了这个答案。但是,我发现了另一种可能更好的解决方案!

只需将变量放在查询字符串的开头,就可以完全避免使用& curren。

执行:

https://site.com/bacon_report?currentDimension=2&Id=1&report=1&param=1

而不是:

https://site.com/bacon_report?Id=1&report=1&currentDimension=2&param=1

答案 1 :(得分:7)

使用php函数urlencode:

urlencode("https://site.com/bacon_report?Id=1&report=1&currentDimension=2&param=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&currentDimension=2&param=1">WRONG - no escaping</a>
<a href="https://example.com/bacon_report?Id=1&amp;report=1&amp;currentDimension=2&amp;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&currentDimension=2&param=1

答案 4 :(得分:0)

我在处理技术文档(在Markdown中转换为HTML)时遇到了这个问题。

为解决该问题,我使用了zero-width space character,并从这些括号()之间复制并粘贴了它。这样一来,似乎没有空间,可以包含以下内容而没有任何问题: /search?query=1&currentLonLat=-74.600291,40.360869