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 相关文章推荐
phpBB BBcode处理的漏洞
Oct 09 PHP
PHP 字符串操作入门教程
Dec 06 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
Sep 08 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 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+ajax导入大数据时产生的问题处理
2014/06/11 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
jquery中获取select选中值的代码
2011/06/27 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
python实现web方式logview的方法
2015/08/10 Python
Django 路由系统URLconf的使用
2018/10/11 Python
python实现趣味图片字符化
2019/04/30 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
在keras中实现查看其训练loss值
2020/06/16 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
造型师求职自荐信
2013/09/27 职场文书
教师党员承诺书
2014/03/25 职场文书
请假条格式范文
2014/04/10 职场文书
本科毕业生自荐信
2014/06/02 职场文书
小学家长学校培训材料
2014/08/24 职场文书
python基础之类方法和静态方法
2021/10/24 Python