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 相关文章推荐
ajax php 实现写入数据库
Sep 02 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
sql注入与转义的php函数代码
Jun 17 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
PHP远程采集图片详细教程
Jul 01 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
php通过session防url攻击方法
Dec 10 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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 面向对象的一个例子
2011/04/12 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
php PDO异常处理详解
2016/11/20 PHP
php微信开发之图片回复功能
2018/06/14 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
sails框架的学习指南
2014/12/22 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python爬取拉勾网职位数据的方法
2018/01/24 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
咖啡厅创业计划书范本
2014/01/22 职场文书
2016特色励志班级口号
2015/12/24 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
教你nginx跳转配置的四种方式
2022/07/07 Servers