thinkphp中U方法按路由规则生成url
2017-02-20 14:34
603 查看
//更改模块配置文件 'URL_ROUTER_ON' => true, 'URL_ROUTE_RULES'=>[]//编写路由优化
tp开启路由后,使用U方法是不会按路由规则生成url的,一般我们是要手动修改模版,把里面的U方法去掉,手动修改链接,如果是已经写好的程序,后期才添加路由,修改起链接就太麻烦了
今天无聊就修改了一下U方法,让它按路由规则生成url,再不用一条条修改模版了。
下面代码添加到 /ThinkPHP/Common/functions.php 文件,在U方法里面直接搜索if($suffix),在前面加入以下代码,u方法生成的url就是按照路由规则生成的呢!
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方法按路由规则生成url
- thinkphp中U方法按路由规则生成url的方法
- Thinkphp的URL规则,伪静态,路由,重写,伪静态,生成及其调试
- thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成
- thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成
- thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)
- thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)
- thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
- ThinkPHP URL伪静态、路由规则、重写、生成
- ASP.NET的路由系统:根据路由规则生成URL
- 【thinkphp3.x】thinkphp3.x中U方法生成url地址
- thinkphp的URL路由规则与配置实例
- 【thinkphp3.x】thinkphp3.x中U方法生成url地址
- ASP.NET的路由系统:根据路由规则生成URL
- Thinkphp中路由Url获取的使用方法
- mvc中多参数URL会很长,首次加载不传参数让url很短,路由规则实现方法[bubuko.com]
- thinkphp的URL路由规则与配置实例
- thinkphp 使用U方法自动生成URL超链接
- thinkphp中url的生成U()方法