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类
Nov 27 PHP
一周学会PHP(视频)Http下载
Dec 12 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
php对二维数组进行排序的简单实例
Dec 19 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
Jul 14 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
PHP 与 UTF-8 的最佳实践详细介绍
Jan 04 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
实例讲解PHP表单处理
2019/02/15 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
JavaScript Split()方法
2015/12/18 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
在微信小程序中使用vant的方法
2019/06/07 Javascript
使用Layer组件弹出多个对话框(非嵌套)与关闭及刷新的例子
2019/09/25 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
Python实现iOS自动化打包详解步骤
2018/10/03 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
tensorboard显示空白的解决
2020/02/15 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
应用数学自荐书范文
2013/11/24 职场文书
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
高中生期末评语
2014/01/28 职场文书
股份合作协议书
2014/04/12 职场文书
村党支部书记承诺书
2014/05/29 职场文书
公司应聘求职信
2014/06/21 职场文书
社区活动策划方案
2014/08/21 职场文书
2014年统战工作总结
2014/12/09 职场文书
2015年采购工作总结
2015/04/10 职场文书