&安培;在URL中无法正常工作

时间:2014-01-08 07:39:50

标签: php url web

我有这个网址:

http://www.mywebsite.com/TrackEmail?j=eyJ1IjoiMzdDOC42MS4wLjE0OCJ9&r=0.569019181653857.gif

我对这部分&r=0.5...感兴趣。此&编码为&符号,因此不会将其解释为params分隔符。所以我假设j param的值为eyJ1IjoiMzdDOC42MS4wLjE0OCJ9&r=0.569019181653857.gif。但是,当我输出j参数值$_REQUEST['j']时,它只显示& - eyJ1IjoiMzdDOC42MS4wLjE0OCJ9之前的部分。为什么这样?

什么是r=0.5...?我无法像$_REQUEST['r']那样访问它。

2 个答案:

答案 0 :(得分:1)

  

我对这部分&r=0.5感兴趣。此&编码为&符号,因此不会将其解释为params分隔符。

&在URI中没有特殊含义。在 HTML 中,它表示&,它不是字符引用的开头。

如果您想为&编码一个URI(这似乎不是此代码的意图),那么您需要使用URI编码:%26

  

什么是r=0.5 ......?我无法像$_REQUEST['r']那样访问它。

如果该URI出现在HTML中,除非它被cookie覆盖或发布数据(我没有记住$_REQUEST的优先顺序),您能够。

但是,如果您将URI的HTML表示粘贴到浏览器的地址栏中(或以其他方式获取而不将其解析为HTML ),则数据将显示在{{1而不是$_REQUEST['amp;r']

答案 1 :(得分:0)

&是HTML或XML编码,而不是URL编码。

您需要使用%26代替将&符号插入不属于查询参数的网址。