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自动加载的两种实现方法
Jun 21 PHP
php设置session值和cookies的学习示例
Mar 21 PHP
php动态添加url查询参数的方法
Apr 14 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
tp5.1 框架数据库-数据集操作实例分析
May 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
Yii2 assets清除缓存的方法
2016/05/16 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Win10下Python环境搭建与配置教程
2016/11/18 Python
python 中的int()函数怎么用
2017/10/17 Python
Python使用folium excel绘制point
2019/01/03 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
教师自我评价范文
2013/12/16 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
转让协议书范本
2014/04/15 职场文书
网页美工求职信范文
2014/04/17 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers