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:风雨欲来 路在何方?
Oct 09 PHP
发挥语言的威力--融合PHP与ASP
Oct 09 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
详解thinkphp中的volist标签
Jan 15 PHP
PHP实现微信申请退款功能
Oct 01 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
js实现一键复制功能
2017/03/16 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
wxPython色环电阻计算器
2019/11/18 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
个人课题方案
2014/05/08 职场文书
个人欠款担保书
2014/05/20 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
总经理检讨书
2014/09/15 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
商务邀请函
2015/01/30 职场文书
新教师个人总结
2015/02/06 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android