亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Thinkphp 終極路由解決方案(超級(jí)偽靜態(tài))閉包的爽快使用

izhuhaodev / 1901人閱讀

  

在ThinkPHP中我們使用偽靜態(tài)的時(shí)候會(huì)產(chǎn)生一些問題,從而不能夠很方便在用apache的rewrite規(guī)則來解決,不過官方因?yàn)檫@個(gè)問題給大家提供了一種高級(jí)解決方案就是route
我在使用ThinkPHP做項(xiàng)目的時(shí)候遇到這樣的事情 route的規(guī)則是要匹配一下控制器
這就是官方在路由的例子里面為什么不使用別的方式,我也納悶官方為什么沒有解決這個(gè)問題
看官方的例子,然后我在寫我的需求

"URL_ROUTER_ON"   => true,
"URL_MAP_RULES"=>array(    
"new/top" => "news/index/type/top"
 )

你看官方的這個(gè)例子,就是解決的new控制器下top路徑重寫的問題
再看一個(gè)

"/^new/(d{4})/(d{2})$/" => "News/achive?year=:1&month=:2",
"new/:year/:month/:day"=>"News/read", // 靜態(tài)地址和動(dòng)態(tài)地址結(jié)合

這個(gè)也是必須匹配new 這個(gè)控制器
第一個(gè)路由匹配的網(wǎng)址基本上都http://www.xxx.com/new/top
第二個(gè)路由匹配的網(wǎng)址是http://www.xxx.com/new/5/3
第三個(gè)路由匹配的網(wǎng)址是http://www.xxx.com/new/2014/4/5
其他的官方例子不說了

 我們的需求呢?我們的需求是不體現(xiàn)控制器我們要的是這樣子的網(wǎng)址 http://www.xxx.com/getMember.html 
 包括http://wwww.xxx.com/getMember/username/xxxxx.html
 http://www.xxx.com/1.html 包括http://www.xxx.com/1-1.html
 http://www.xxx.com/getContent/1.html

我們需要的,官方提供的這些常規(guī)方式都無法解決怎么辦,不要著急,官方還提供了一種辦法叫做閉包支持
這就是我今天所要說的終極路由解決方案————ThinkPHP超級(jí)偽靜態(tài)模式。
其實(shí)要匹配/getMember或者匹配/getContent我們在正則中都很方便只需要一個(gè)^get(w{2,5})[^/]這樣就能匹配了, 更超級(jí)的方式是get(w+[^/])這樣就可以匹配了,下面開始說閉包支持——終極路由解決方案
還是先放官方的例子

"URL_ROUTE_RULES"=>array(
"test"        =>         function(){
         echo "just test";
    },
"hello/:name" =>         function($name){
         echo "Hello,".$name;
    })

這是第一個(gè),這樣訪問的時(shí)候你訪問xxx/hellow/hainuo會(huì)發(fā)現(xiàn)瀏覽器只輸出了 Hello,hainuo別的什么都沒有

"/^new/(d{4})/(d{2})$/" =>     function($year,$month){
     echo "year=".$year."&month=".$month;
}

這個(gè)例子也沒有什么好說的,就是輸出year=2015&month=6
這都不是我們需要的,難道閉包后就不能夠繼續(xù)運(yùn)行后續(xù)的程序嗎?
答案是肯定的,一定能支持后續(xù)程序運(yùn)行的。
仔細(xì)看官方的示例還會(huì)發(fā)現(xiàn),竟然有下面一個(gè)支持——我們的終極路由解決方案,超級(jí)為靜態(tài)模式終于跟大家見面了,

"hello/:name" =>     function($name){
    echo "Hello,".$name."
"; $_SERVER["PATH_INFO"] = "blog/read/name/".$name; return false; } 假設(shè)blog控制器中的read操作方法代碼如下: public function read($name){ echo "read,".$name."!
"; }

于是我們就順利的找到了答案

 "URL_ROUTE_RULES"=>array(
    "/get(w+)[^/]"=>function(){
        $_SERVER["PATH_INFO"] = "blog/read/name/".$name;
        return false;     
    }

只需要在路由規(guī)則中如下填寫,便ok了,這樣設(shè)置后就會(huì)出現(xiàn)一個(gè)問題使用U方法得到URI將不再是我們所需要的,所以,在有關(guān)URI的地方請(qǐng)直接按照上面我們需要的規(guī)則填寫。

  

備注一下:20140609
在閉包支持中,你使用IS_AJAX 會(huì)發(fā)現(xiàn)他始終為true 不清楚什么原因。這個(gè)留待以后研究吧

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/35726.html

相關(guān)文章

  • thinkphp源碼分析(一)—開門篇

    摘要:源碼分析開門篇生命周期入口文件用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過應(yīng)用的入口文件,通常是文件。注冊錯(cuò)誤和異常機(jī)制執(zhí)行注冊錯(cuò)誤和異常處理機(jī)制。由三部分組成應(yīng)用關(guān)閉方法錯(cuò)誤處理方法異常處理方法注冊應(yīng)用關(guān)閉方法是為了便于攔截一些系統(tǒng)錯(cuò)誤。 源碼分析—開門篇 thinkphp生命周期 1、入口文件 用戶發(fā)起的請(qǐng)求都會(huì)經(jīng)過應(yīng)用的入口文件,通常是 ==public/index.php==文件。當(dāng)然,你也可以更改...

    flybywind 評(píng)論0 收藏0
  • ThinkPHP 5.x 遠(yuǎn)程代碼getshell漏洞實(shí)戰(zhàn)分析

    摘要:簡介是一個(gè)免費(fèi)開源的,快速簡單的面向?qū)ο蟮妮p量級(jí)開發(fā)框架,因?yàn)槠湟子眯詳U(kuò)展性,已經(jīng)成長為國內(nèi)頗具影響力的應(yīng)用開發(fā)框架漏洞解析漏洞引發(fā)的原因是框架對(duì)控制器名沒有進(jìn)行足夠的檢測,現(xiàn)拉取來進(jìn)行測試請(qǐng)求路由系統(tǒng)解析為模塊控制器方法參數(shù)列表跟蹤到 ThinkPHP 簡介 ThinkPHP 是一個(gè)免費(fèi)開源的,快速、簡單的面向?qū)ο蟮妮p量級(jí)PHP開發(fā)框架,因?yàn)槠湟子眯浴U(kuò)展性,已經(jīng)成長為國內(nèi)頗具影響力...

    mykurisu 評(píng)論0 收藏0
  • daily-question-02(前端每日一題02)

    摘要:靜態(tài)作用域與動(dòng)態(tài)作用域靜態(tài)作用域函數(shù)的作用域基于函數(shù)創(chuàng)建的位置。采用的是詞法作用域,也稱為靜態(tài)作用域??梢越俪终麄€(gè)對(duì)象,并返回一個(gè)新的對(duì)象。防誤觸延緩執(zhí)行立即執(zhí)行節(jié)流所謂節(jié)流,就是指連續(xù)觸發(fā)事件但是在秒中只執(zhí)行一次函數(shù)。 在這里記錄著每天自己遇到的一道印象深刻的前端問題,以及一道生活中隨處可見的小問題。 強(qiáng)迫自己形成積累的習(xí)慣,鞭撻自己不斷前行,共同學(xué)習(xí)。 Github 地址 2019...

    lk20150415 評(píng)論0 收藏0
  • daily-question-02(前端每日一題02)

    摘要:靜態(tài)作用域與動(dòng)態(tài)作用域靜態(tài)作用域函數(shù)的作用域基于函數(shù)創(chuàng)建的位置。采用的是詞法作用域,也稱為靜態(tài)作用域??梢越俪终麄€(gè)對(duì)象,并返回一個(gè)新的對(duì)象。防誤觸延緩執(zhí)行立即執(zhí)行節(jié)流所謂節(jié)流,就是指連續(xù)觸發(fā)事件但是在秒中只執(zhí)行一次函數(shù)。 在這里記錄著每天自己遇到的一道印象深刻的前端問題,以及一道生活中隨處可見的小問題。 強(qiáng)迫自己形成積累的習(xí)慣,鞭撻自己不斷前行,共同學(xué)習(xí)。 Github 地址 2019...

    30e8336b8229 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<