国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設資訊詳細

thinkphp網(wǎng)站開發(fā)之分頁參數(shù)亂碼解決

發(fā)表日期:2022-01-18 16:56:25   作者來源:方維網(wǎng)絡   瀏覽:1804   標簽:thinkphp    網(wǎng)站開發(fā)    
網(wǎng)站開發(fā)中經(jīng)常會遇到整站搜索功能,而搜索之后會出現(xiàn)大量的數(shù)據(jù),而通常都是使用分頁的形式去展示這些數(shù)據(jù),當搜索的字段中含有中文時,就可能導致翻頁出現(xiàn)亂碼,導致翻頁失效。

網(wǎng)站導航

搜索使用form表單提交的方式,前端代碼:
<form class="" method="get" action="{:urlrotue('Search/index')}">
                        <div class="header-form">
                            <input type="text" class="header-text" name="q" id="q" placeholder="請輸入搜索關鍵詞">
                            <a><input type="submit" class="header-sub" value=""></a>
                        </div>
                        </form>

前端網(wǎng)頁

下面是頁碼出現(xiàn)亂碼的地址,點擊后無法跳轉到第二頁的內(nèi)容:

頁面URL地址
程序代碼

查看了ThinkPHP\Library\Think\Page.class文件后發(fā)現(xiàn)代碼是這樣的

PHP代碼

然后只需要這樣修改:

PHP代碼2

private function url($page){
 
        return str_replace(urlencode('[PAGE]'), $page, $this->url);
 
}
 
$request_url = $_SERVER["REQUEST_URI"];
        if(!preg_match("/\/p\/\d+/", $request_url)) {
            $request_url = str_replace(".html", '/p/'.urlencode('[PAGE]').'.html', $request_url);
        }
        $this->url = preg_replace("/\/p\/\d+\.html/", '/p/'.urlencode('[PAGE]').'.html', $request_url);
得到的正常的地址應該是這樣的:

url2

在后續(xù)的使用過程中又發(fā)現(xiàn),URL在Apache上是/不會有問題,但是在IIS上用/會亂碼,必須用?=這種格式才行或者到需要通過url?=傳遞參數(shù)時。



$this->parameter[$this->p] = '[PAGE]';
$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;
得到的地址是這樣的:
url地址2
 
如沒特殊注明,文章均為方維網(wǎng)絡原創(chuàng),轉載請注明來自http://pdcharm.com/news/6332.html
丰城市| 英山县| 河南省| 浏阳市| 格尔木市| 稻城县| 高平市| 舟山市| 盱眙县| 临桂县| 防城港市| 双流县| 河源市| 太湖县| 荣昌县| 龙海市| 新巴尔虎左旗| 平凉市| 河源市| 沙湾县| 雷州市| 玉田县| 唐河县| 台北市| 惠东县| 威远县| 体育| 浦东新区| 五大连池市| 墨竹工卡县| 友谊县| 湖北省| 申扎县| 桃园县| 冀州市| 平阳县| 普兰店市| 张家界市| 梁河县| 威信县| 卢氏县|