Codeigniter很好用,但是运用在国内项目的时候,却无法在url地址中包含中文。
这是由于在Codeigniter中的uri解析中,将中文列为了不允许的字符。修改的办法有两种,修改这个规则。其次,将地址进行编码,也是可行的。
我这里的办法是,对地址进行编码。由于Codeigniter是内部开发目录同名覆盖外部的规则,所以这里在application(可能是自己设定的开发目录)下的libraries下创建MY_URI.php文件,内容如下,即可。
<pre class="brush:php;"> class MY_URI extends CI_URI {
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;
}
}
```
Codeigniter url uri 中文 支持