thinkphp中U方法按路由规则生成url的方法


Posted in PHP onMarch 12, 2018

如下所示:

//更改模块配置文件
'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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP和ACCESS写聊天室(二)
Oct 09 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
PHP 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
php浏览历史记录的方法
Mar 10 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
PHP最常用的正则表达式
Feb 13 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 #PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 #PHP
Yii2 中实现单点登录的方法
Mar 09 #PHP
php中输出json对象的值(实现方法)
Mar 07 #PHP
php 读写json文件及修改json的方法
Mar 07 #PHP
php读取本地json文件的实例
Mar 07 #PHP
PHP中in_array的隐式转换的解决方法
Mar 06 #PHP
You might like
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
django如何连接已存在数据的数据库
2018/08/14 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
python binascii 进制转换实例
2019/06/12 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
详解Python中的分支和循环结构
2020/02/11 Python
python自定义函数def的应用详解
2020/06/03 Python
python求numpy中array按列非零元素的平均值案例
2020/06/08 Python
Python logging模块原理解析及应用
2020/08/13 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
超市总经理岗位职责
2014/02/02 职场文书
四群教育工作实施方案
2014/03/26 职场文书
汇报材料怎么写
2014/12/30 职场文书
离婚协议书怎么写
2015/01/26 职场文书
亮剑观后感300字
2015/06/05 职场文书
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js