artfantasy 发表于 2008-5-9 14:43:45

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

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

针对我的搜索这问题,以下几种方式我觉得不可取:
1.修改CI的URL过滤规则
2.启用CI的查询字符串功能(打死我,我也不启用)
2.将每个搜索分页链接做成表单来POST,这样未必太傻帽了。。。

qq123 发表于 2008-5-9 15:18:02

http://yourwebsite/class/method/param1/param2/...paramN/?key=值

key=值可以用$_SERVER['QUERY_STRING']来分析。

qq123 发表于 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;
                $querys[$key] = $query;
        }
        return $querys;
}

[ 本帖最后由 qq123 于 2008-5-9 15:57 编辑 ]

Hex 发表于 2008-5-9 16:24:14

我推荐楼主修改 CI 的源代码,以去掉中文限制。

zshtom 发表于 2008-5-10 14:49:43

对 只能修改源代码对 url 参数的规格 限制去掉

kkito 发表于 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

kkito 发表于 2008-5-10 20:20:54

修改他的url限制为啥不可取啊?

沧蓝 发表于 2008-5-10 21:21:38

base64一下不就好了么。。。

artfantasy 发表于 2008-5-12 08:51:40

因为我尽量保持不去修改CI的源程序,所以才想有没有其它办法来解决这个问题!
沧蓝,base64也是不行的。。

xluohome 发表于 2008-5-12 20:13:57

可以思考一下用 flash session
页: [1] 2
查看完整版本: 彻底晕了,老早就觉得CI的URI解析会有缺限,果然……