您的位置:首页 > 其它

让ci的url检测通过中文字符

2010-05-04 11:39 155 查看
ci有自动的url过滤机制,如果是直接输入汉字会被拦截下例如

xx.com/aaa/bbb/中国

而且用urlencode也是不管用的

需要把uri类扩展下,

class MY_URI extends CI_URI {
//put your code here
function _filter_uri($str)
{
if ($str != '' AND $this->config->item('permitted_uri_chars') != '')
{
$str = urlencode($str);  // 注意这里
if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", $str))
{
exit('The URI you submitted has disallowed characters.');
}
$str = urldecode($str); // 注意这里
}
return $str;
}

}


除此之外 还要改个配置项 在config里面,否则的话无法传输空格

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

改成

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_/+/-';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: