免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

thinkphp網站開發之分頁參數亂碼解決

2023-02-16    分類: 網站建設

網站導航

網站開發中經常會遇到整站搜索功能,而搜索之后會出現大量的數據,而通常都是使用分頁的形式去展示這些數據,當搜索的字段中含有中文時,就可能導致翻頁出現亂碼,導致翻頁失效。
搜索使用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>
頁面URL地址
程序代碼
下面是頁碼出現亂碼的地址,點擊后無法跳轉到第二頁的內容:
PHP代碼
查看了ThinkPHP\Library\Think\Page.class文件后發現代碼是這樣的
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);

得到的正常的地址應該是這樣的:

在后續的使用過程中又發現,URL在Apache上是/不會有問題,但是在IIS上用/會亂碼,必須用?=這種格式才行或者到需要通過url?=傳遞參數時。
$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;

得到的地址是這樣的:

網站欄目:thinkphp網站開發之分頁參數亂碼解決
網頁鏈接:http://m.newbst.com/news12/237462.html

成都網站建設公司_創新互聯,為您提供定制網站服務器托管網站策劃手機網站建設網站建設網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設