首页 > Web开发 > 详细

Thinkphp 修改U方法按路由规则生成url

时间:2017-01-20 17:24:17      阅读:241      评论:0      收藏:0      [点我收藏+]

tp开户路由后,使用U方法是不会按路由规则生成url的,一般我们是要手动修改模版,把里面的U方法去掉,手动修改链接,如果是已经写好的程序,后期才添加路由,修改起链接就太麻烦了

今天无聊就修改了一下U方法,让它按路由规则生成url,再不用一条条修改模版了哈哈哈哈哈哈

 

下面代码添加到 /ThinkPHP/Common/functions.php 文件U方法里,大概 263行(if($suffix) 前面):

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($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 ($matches[1] as $match) {
            $url = str_replace($match . ‘/‘, ‘‘, $url);
            $url = str_replace(substr($match, 1) . ‘/‘, ‘‘, $url);
        }
    }   
}

 

Thinkphp 修改U方法按路由规则生成url

原文:http://www.cnblogs.com/tujia/p/6323212.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!