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.MVC的模板标签系统(五)
Sep 05 PHP
PHP 超链接 抓取实现代码
Jun 29 PHP
php date()日期时间函数详解
May 16 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
Feb 05 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
Apr 30 PHP
PHP接口继承及接口多继承原理与实现方法详解
Oct 18 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 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 is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python中List.count()方法的使用教程
2015/05/20 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
Python分类测试代码实例汇总
2020/07/23 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
元旦晚会邀请函
2014/01/27 职场文书
房地产营销策划方案
2014/02/08 职场文书
家长写给老师的建议书
2014/03/13 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
2014年教师工作总结
2014/11/10 职场文书
受资助学生感谢信
2015/01/21 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
浅谈Vue的computed计算属性
2022/03/21 Vue.js
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers