PHP的 urlencode()在ThinkPHP框架中的使用需要注意的地方

本文详细介绍了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

 

转载于:https://www.cnblogs.com/kyon000/archive/2013/01/31/2888226.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值