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和ACCESS写聊天室(四)
Oct 09 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 PHP
Youku 视频绝对地址获取的方法详解
Jun 26 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
destoon实现首页显示供应、企业、资讯条数的方法
Jul 15 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
Laravel5框架添加自定义辅助函数的方法
Aug 01 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
php实现telnet功能示例
2014/04/08 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
php编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
urllib2自定义opener详解
2014/02/07 Python
python获取网页状态码示例
2014/03/30 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python中动态检测编码chardet的使用教程
2017/07/06 Python
Python中单、双下划线的区别总结
2017/12/01 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
pytorch实现查看当前学习率
2020/06/24 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android