tp開啟路由后,使用U方法是不會按路由規(guī)則生成url的,一般我們是要手動修改模版,把里面的U方法去掉,手動修改鏈接,如果是已經(jīng)寫好的程序,后期才添加路由,修改起鏈接就太麻煩了
下面代碼添加到 /ThinkPHP/Common/functions.php 文件,在U方法里面直接搜索if($suffix),在前面加入以下代碼,u方法生成的url就是按照路由規(guī)則生成的呢!
if(C('URL_ROUTE_RULES')){
foreach (C('URL_ROUTE_RULES') as $rule=>$real) {
if(strpos($url, $real)!==false){
$url = str_replace($real, $rule, $url);
preg_match("/\/(\w+)\.php\/(\w+)/", $url, $match);
if(isset($match[1]) isset($match[2]) $match[1][0]==$match[2][0]){
$url = preg_replace("/\/(\w+)\.php/", '', $url);
}elseif(strpos($url, 'index.php')!==false){
$url = str_replace("/index.php", '', $url);
}else{
$url = str_replace(".php", '', $url);
}
preg_match_all("/(:\w+)/", $rule, $matches);
foreach ((array)$matches[1] as $match) {
$url = str_replace($match . '/', '', $url);
$url = str_replace(substr($match, 1) . '/', '', $url);
}
}
}
}
以上這篇thinkphp中U方法按路由規(guī)則生成url的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。