改寫ThinkPHP的U方法使其路由下分頁正常
ThinkPHP3.1.3在啟用路由的情況下,其分頁地址不是路由的地址,由于thinkphp3.2.1的代碼也沒有修復(fù),很多人都遇到了這一問題,本文采納olcms的修改方法解決這一問題,特別感謝phper jack對此做出的貢獻(xiàn),具體解決辦法是修改ThinkPHP的functions.php的U方法,在287行左右:
if(!empty($vars)) { // 添加參數(shù) foreach ($vars as $var => $val){ if('' !== trim($val)) $url .= $depr . $var . $depr . urlencode($val); }
后面加入以下代碼
/* * tp開啟路由之后下一頁路由失效問題 分頁類URL組裝 */ //如果開啟路由 if(C('URL_ROUTER_ON')){ foreach (C('URL_ROUTE_RULES') as $zhaolg => $zlig){//遍歷路由 if(strstr('/'.GROUP_NAME.$url,$zlig)){//從網(wǎng)址中找路由規(guī)則 $lg = strstr($zhaolg,'/:');//分析規(guī)則 帶參數(shù)? if($lg){//如果規(guī)則帶參數(shù) $tempzlg = str_replace('/:','',$lg);//取參數(shù) //dump($tempzlg); if($tempzlg){ if(C('APP_SUB_DOMAIN_DEPLOY')){ $zlgurl = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url); //url替換為路由規(guī)則 }else{ $zlgurl = str_replace($zlig,$zhaolg,$url); //url替換為路由規(guī)則 } //注 /s/:c/c/4/p/__PAGE__ //dump($zlgurl); $url = str_replace($lg.'/'.$tempzlg,'',$zlgurl);//url替換路由規(guī)則參數(shù) } }else{//分析規(guī)則 不帶參數(shù) if(C('APP_SUB_DOMAIN_DEPLOY')){ $url = str_replace($zlig,$zhaolg,'/'.GROUP_NAME.$url);//url替換為路由規(guī)則 }else{ $url = str_replace($zlig,$zhaolg,$url);//url替換為路由規(guī)則 } } } } }
至此問題得以解決!
- thinkphp的URL路由規(guī)則與配置實(shí)例
- thinkphp5 URL和路由的功能詳解與實(shí)例
- ThinkPHP路由詳解
- thinkphp路由規(guī)則使用示例詳解和偽靜態(tài)功能實(shí)現(xiàn)(apache重寫)
- ThinkPHP、Zend?Framework2、Yaf、Laravel框架路由大比拼
- thinkPHP5.1框架路由::get、post請求簡單用法示例
- thinkphp中U方法按路由規(guī)則生成url的方法
- ThinkPHP路由機(jī)制簡介
- thinkPHP5框架路由常用知識(shí)點(diǎn)匯總
- thinkphp5框架路由原理與用法詳解
- thinkphp框架實(shí)現(xiàn)路由重定義簡化url訪問地址的方法分析
相關(guān)文章
ThinkPHP 3.2 數(shù)據(jù)分頁代碼分享
這篇文章主要分享給大家一段ThinkPHP 3.2 數(shù)據(jù)分頁代碼,非常的簡單好用,有需要當(dāng)朋友參考下2014-10-10深入解析Laravel5.5中的包自動(dòng)發(fā)現(xiàn)Package Auto Discovery
眾所周知Laravel 5.5 發(fā)布在即,目前已經(jīng)確定會(huì)增加一個(gè)神奇的新特性:Package Auto Discovery。下面這篇文章主要給大家深入的介紹了關(guān)于Laravel5.5中包自動(dòng)發(fā)現(xiàn)Package Auto Discovery的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09ThinkPHP實(shí)現(xiàn)將本地文件打包成zip下載
這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)將本地文件打包成zip下載的方法,需要的朋友可以參考下2014-06-06PHP全局變量中的global與$GLOBALS的區(qū)別和用法小結(jié)
這篇文章主要介紹了PHP全局變量中的global與$GLOBALS的區(qū)別和用法小結(jié),global的作用就相當(dāng)于傳遞參數(shù),在函數(shù)外部聲明的變量,如果在函數(shù)內(nèi)想要使用,就用global來聲明該變量,這樣就相當(dāng)于把該變量傳遞進(jìn)來了,就可以引用該變量了,需要的朋友可以參考下2023-10-10ThinkPHP框架實(shí)現(xiàn)的郵箱激活功能示例
這篇文章主要介紹了ThinkPHP框架實(shí)現(xiàn)的郵箱激活功能,結(jié)合實(shí)例形式分析了thinkPHP使用class.smtp.php及class.phpmailer.php類文件進(jìn)行郵件發(fā)送實(shí)現(xiàn)激活功能的具體操作技巧,需要的朋友可以參考下2018-06-06php+ajax實(shí)現(xiàn)無刷新文件上傳功能(ajaxuploadfile)
這篇文章主要為大家詳細(xì)介紹了php結(jié)合ajaxuploadfile實(shí)現(xiàn)無刷新文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02