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(2)
Oct 09 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
Apr 28 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
php读取文件内容的三种可行方法示例介绍
Feb 08 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
destoon各类调用汇总
Jun 20 PHP
PHP连接access数据库
Mar 27 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
Oct 24 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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP 替换模板变量实现步骤
2009/08/24 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
从零学Python之入门(四)运算
2014/05/27 Python
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python获取本机外网ip的方法
2015/04/15 Python
python感知机实现代码
2019/01/18 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
python 实现图片裁剪小工具
2021/02/02 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
机械设计制造专业个人求职信
2013/09/25 职场文书
医学毕业生自我鉴定
2013/10/30 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
田径运动会通讯稿
2015/07/18 职场文书
古见同学有交流障碍症 第二季宣传CM公开播出
2022/04/11 日漫