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实现将GB编码转换为UTF8
Nov 25 PHP
php FPDF类库应用实现代码
Mar 20 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
smarty自定义函数htmlcheckboxes用法实例
Jan 22 PHP
php实现通过ftp上传文件
Jun 19 PHP
PHP格式化MYSQL返回float类型的方法
Mar 30 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 PHP
PHP7 其他语言层面的修改
Mar 09 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
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
分享php分页的功能模块
2015/06/16 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
python的链表基础知识点
2020/09/13 Python
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
小学三八妇女节活动方案
2014/03/16 职场文书
社区工作者演讲稿
2014/05/23 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
新员工辞职信范文
2015/05/12 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang
DSP接收机前端设想
2022/04/05 无线电
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python