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中break及continue两个流程控制指令区别分析
Apr 18 PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP使用new StdClass()创建空对象的方法分析
Jun 06 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
php的扩展写法总结
May 14 PHP
php抽象类和接口知识点整理总结
Aug 02 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
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
Yii框架中使用PHPExcel的方法分析
2019/07/25 PHP
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
javascript事件模型介绍
2016/05/31 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
致长跑运动员加油稿
2014/02/20 职场文书
三年级评语大全
2014/04/23 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
财务检查整改报告
2014/11/06 职场文书
小学毕业感言200字
2015/07/30 职场文书
执行力心得体会范文
2016/01/11 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫