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 相关文章推荐
第十节--抽象方法和抽象类
Nov 16 PHP
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
一个严格的PHP Session会话超时时间设置方法
Jun 10 PHP
PHP异常处理浅析
May 12 PHP
php生成带logo二维码方法小结
Apr 08 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
php+ajax 文件上传代码实例
Mar 18 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
10条PHP高级技巧[修正版]
2011/08/02 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
给ECShop添加最新评论
2015/01/07 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
使用python Django做网页
2013/11/04 Python
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
Python实现手势识别
2020/10/21 Python
《莫高窟》教学反思
2014/02/25 职场文书
推广普通话标语
2014/06/27 职场文书
五好家庭事迹材料
2014/12/20 职场文书
会计专业求职信范文
2015/03/19 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
python爬不同图片分别保存在不同文件夹中的实现
2021/04/02 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python