关于url中有特殊字符的处理

 今天构造url的查询条件时,有一个需要按礼品描述信息来查询的需求,我把查询条件放在url里,

试了几个正常,当描述信息中带有特殊字符时(像$,[,]这些),提示这样的字符在url中是不被允许的,

上网找了下,发现只要修改一下配置文件就好,于是去config文件夹下找到config.php文件,

有一行:$config['permitted_uri_chars'] = 'a-z 0-9~%.:_/-$;[]';

把字符添加进去就一切ok了。

构造是可以了,可是关于这个查询条件select框,在查询时自动选中查询条件项还有问题,

我的做法是从url取得礼品描述信息(也就是查询条件),然后select框中查询条件字符串与url取得的一样的option设置其选中,

这涉及到字符串比较问题,没想到竟然没有得到我预期的结果。

当用含有特殊字符的查询条件查询时,select框并没有自动匹配选中,可是字符都是一样的字符啊,很奇怪的问题。

没办法,只好把两个字符分别用var_dump打出来,看看是不是长度不一样;

一试还真是不一样,两个地方的‘Free parking worth $3’,一个是从url中用substr取的,一个是数据库中取的,

而从url取的字符串要比从数据库中取的多了4个字符,看来是从url中取的那个字符串中'$'被转成了html实体'$'

这样多出了4个字符,于是从url中取字符时用html_entity_decode把实体转化成字符,这样两个字符串就相等了,搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值