用户
 找回密码
 入住 CI 中国社区
搜索
查看: 9565|回复: 19
收起左侧

彻底晕了,老早就觉得CI的URI解析会有缺限,果然……

[复制链接]
发表于 2008-5-9 14:43:45 | 显示全部楼层 |阅读模式
使用CI做了一套系统……
现在在弄前台关键字搜索。。。郁闷了。。。
因为前台关键字可以输入中文,英文以及其它文字来进行搜索,OK,这里没有问题,关键词可以通过表单POST传给我的搜索控制器方法,但是当搜索结果很多时,我需要在搜索结果页分页显示时,按常理,每个分页的链接URL中必然会包含当前“搜索关键字”以及“页码”,问题来了,CI的URI解析对于中URI中传参有严格要求。。。base64_encode,urlencode,rawurlencode全试过了,NO OK…………
所以想问一个大家有没有什么好办法在CI的URI中传递中文,特殊符号等参数?

针对我的搜索这问题,以下几种方式我觉得不可取:
1.修改CI的URL过滤规则
2.启用CI的查询字符串功能(打死我,我也不启用)
2.将每个搜索分页链接做成表单来POST,这样未必太傻帽了。。。
发表于 2008-5-9 15:18:02 | 显示全部楼层
http://yourwebsite/class/method/param1/param2/...paramN/?key=值

key=值可以用$_SERVER['QUERY_STRING']来分析。
发表于 2008-5-9 15:45:03 | 显示全部楼层
这里简单写了个解析query string 的函数,你参考一下看看是否符合你的要求。

function get_query_string(){
        $querys = array();
        $tmp = $_SERVER['QUERY_STRING'];
        $strings = explode('&' , $tmp);

        foreach($strings as $str){
                $query = explode('=' , $str);
                $key = $query[0];
                $querys[$key] = $query[1];
        }
        return $querys;
}

[ 本帖最后由 qq123 于 2008-5-9 15:57 编辑 ]
发表于 2008-5-9 16:24:14 | 显示全部楼层
我推荐楼主修改 CI 的源代码,以去掉中文限制。
发表于 2008-5-10 14:49:43 | 显示全部楼层
对 只能修改源代码对 url 参数的规格 限制去掉
发表于 2008-5-10 20:17:10 | 显示全部楼层
$config['permitted_uri_chars'] = '()a-z 0-9~%.:_-';
不是这个吗?
注释掉就可以,不过这个好像是有点问题。把匹配符都加斜杠处理了
查询分页本人网站有这功能
展示一下
呵呵
http://www.kkito.cn/index.php/blog/search/觉得-1
第二页是
http://www.kkito.cn/index.php/blog/search/觉得-2
多个关键字也可以,不过有bug
发表于 2008-5-10 20:20:54 | 显示全部楼层
修改他的url限制为啥不可取啊?
发表于 2008-5-10 21:21:38 | 显示全部楼层
base64一下不就好了么。。。
 楼主| 发表于 2008-5-12 08:51:40 | 显示全部楼层
因为我尽量保持不去修改CI的源程序,所以才想有没有其它办法来解决这个问题!
沧蓝,base64也是不行的。。
发表于 2008-5-12 20:13:57 | 显示全部楼层
可以思考一下用 flash session

本版积分规则