首页 » PHP笔记 » thinkphp分页中文参数乱码解决

thinkphp分页中文参数乱码解决

高蒙 2018/08/12 08:30 1.5k浏览 0评论 Thinkphp


今天发现分页有中文参数会出现乱码,以前都是查询字符串或数字没有问题,所以没发现。URL在Apache上是/不会有问题,但是在IIS上用/会乱码,必须用?=这种格式才行。

在某个问题下的回答,终于把分页的格式转成了?=,解决了这个问题,特此分享下,如有更多解决办法欢迎探讨。

只用改ThinkPHP\Library\Think\Page.class文件:

把:

return str_replace(urlencode('[PAGE]'), $page, $this->url);

改成:

return str_replace('[PAGE]', $page, $this->url);


把:

$this->url = U(ACTION_NAME, $this->parameter);

改成:

$paramStr="";
foreach($this->parameter as $key => $value){
    $paramStr = $paramStr.'&'.$key.'='.$value;
}
$paramStr = substr($paramStr,1,strlen($paramStr));
$this->url = U(ACTION_NAME).(strpos(U(),"?")?'&':'?').$paramStr;





相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    485

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。