作者:凡惜弟 | 来源:互联网 | 2023-08-14 18:56
PHP中的urlencode()除了“-_.”之外的所有非字母数字字符都将被替换成百分号“%”后跟两位十六进制数。替换规则有字符特殊字符的含义URL编码#用来标志特定的文档位置%
PHP中的urlencode()
除了“-_.”之外的所有非字母数字字符都将被替换成百分号“%”后跟两位十六进制数。
替换规则有
字符 特殊字符的含义 URL编码
# 用来标志特定的文档位置 %23
% 对特殊字符进行编码 %25
& 分隔不同的变量值对 %26
+ 在变量值中表示空格 %2B
\ 表示目录路径 %2F (在浏览器中表现为 “ / ”)
= 用来连接键和值 %3D
? 表示查询字符串的开始 %3F
(以下现象是我在本地测试结果,本地开启PATHINFO模式,网络还没测)
我用了一个加密函数加密一个参数,然后在页面间用get方法传递,发现只要存在%2F 也就是 斜杠“/”,就出现以下现象
原因没分析出来, 于是我在使用 urlencode()函数之后,专门对%2F进行了处理 ,替换一个我认为也绝对会唯一的识别 %2XURL
在接受值的时候专门讲 %2XURL 替换成 /
$urle=str_replace("%2XURL", "/", $_GET['CODE']);
然后在进行解码;
如有高手路过,请指教具体原因
参考文档http://www.huacolor.com/article/2187.html
http://www.jb51.net/article/27954.htm