彻底晕了,老早就觉得CI的URI解析会有缺限,果然……
使用CI做了一套系统……现在在弄前台关键字搜索。。。郁闷了。。。
因为前台关键字可以输入中文,英文以及其它文字来进行搜索,OK,这里没有问题,关键词可以通过表单POST传给我的搜索控制器方法,但是当搜索结果很多时,我需要在搜索结果页分页显示时,按常理,每个分页的链接URL中必然会包含当前“搜索关键字”以及“页码”,问题来了,CI的URI解析对于中URI中传参有严格要求。。。base64_encode,urlencode,rawurlencode全试过了,NO OK…………
所以想问一个大家有没有什么好办法在CI的URI中传递中文,特殊符号等参数?
针对我的搜索这问题,以下几种方式我觉得不可取:
1.修改CI的URL过滤规则
2.启用CI的查询字符串功能(打死我,我也不启用)
2.将每个搜索分页链接做成表单来POST,这样未必太傻帽了。。。 http://yourwebsite/class/method/param1/param2/...paramN/?key=值
key=值可以用$_SERVER['QUERY_STRING']来分析。 这里简单写了个解析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 编辑 ] 我推荐楼主修改 CI 的源代码,以去掉中文限制。 对 只能修改源代码对 url 参数的规格 限制去掉 $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 修改他的url限制为啥不可取啊? base64一下不就好了么。。。 因为我尽量保持不去修改CI的源程序,所以才想有没有其它办法来解决这个问题!
沧蓝,base64也是不行的。。 可以思考一下用 flash session
页:
[1]
2