我使用PHP来看看那个中有一个URL的XML文件。 该网址是这个样子:
https://site.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1
当我回声出的URL,在“&CURREN”显示为“¤”(又名#164,A4或货币符号)和链接不工作。 出现这种情况,即使没有它关闭分号。 是什么力量让“&CURREN”显示字面上干净的方式?
我使用PHP来看看那个中有一个URL的XML文件。 该网址是这个样子:
https://site.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1
当我回声出的URL,在“&CURREN”显示为“¤”(又名#164,A4或货币符号)和链接不工作。 出现这种情况,即使没有它关闭分号。 是什么力量让“&CURREN”显示字面上干净的方式?
使用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
搞笑的是我刚才碰到了同样的问题,我发现这个答案。 然而,我发现了另一个解决方案,它甚至可能会更好!
简而言之变量在查询字符串的开头,你会避免与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
这里的问题是逃避 - 你需要躲避“&”字符。 在XML中的所有特殊字符,如<,>,”,“和和应逃脱。
逃避它作为正常
https://example.com/bacon_report?Id=1&report=1&currentDimension=2&param=1
..just像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>
所以 - 最清晰的方式展现在HTML“&CURREN” / XML是正确转义符号,并使其作为与“&amp; CURREN”。
我认为,在这种情况下,它是最好的,因为用urlencode你使用ヶ辆https%3A%2F%2Fexample.com%2Fbacon_report%3FId%3D1%26report%3D1%26currentDimension%3D2%26param%3D1
并应用urldecode的时候,你仍然有与CURREN符号,其中与ヶ辆的URL出来干净。
https://example.com/bacon_report?Id=1&report=1¤tDimension=2¶m=1