Codeigniter的url中包含中文的支持

2011-01-17 阅读 41

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 中文 支持

更新于 2023年03月28日