现在的位置: 首页 > 综合 > 正文

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

2013年08月27日 ⁄ 综合 ⁄ 共 632字 ⁄ 字号 评论关闭

 今天构造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把实体转化成字符,这样两个字符串就相等了,搞定。

抱歉!评论已关闭.