如何获取&curren以字面方式显示,而不是HTML实体

pg.*_*pg. 5 html php url

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

https://site.com/bacon_report?Id=1&report=1¤tDimension=2m=1

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

kol*_*nep 8

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

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

做:

https://site.com/bacon_report?currentDimension=2&Id=1&report=1&param=1
Run Code Online (Sandbox Code Playgroud)

代替:

https://site.com/bacon_report?Id=1&report=1&currentDimension=2&param=1
Run Code Online (Sandbox Code Playgroud)


Gav*_*vin 7

使用php函数urlencode:

urlencode("https://site.com/bacon_report?Id=1&report=1&currentDimension=2&param=1"
Run Code Online (Sandbox Code Playgroud)

将输出

https%3A%2F%2Fsite.com%2Fbacon_report%3FId%3D1%26report%3D1%26currentDimension%3D2%26param%3D1 
Run Code Online (Sandbox Code Playgroud)


小智 6

这里的问题是逃避 - 你需要逃避"&"字符.在XML中,所有特殊字符,如<,>,',"和&都应该被转义.

正确地逃脱它

https://example.com/bacon_report?Id=1&amp;report=1&amp;currentDimension=2&amp;param=1
Run Code Online (Sandbox Code Playgroud)

..就像在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>
Run Code Online (Sandbox Code Playgroud)

因此 - 在HTML/XML中显示"¤"的最简洁方法是正确地转义&符号,并将其呈现为"& curren".