tp开户路由后,使用U方法是不会按路由规则生成url的,一般我们是要手动修改模版,把里面的U方法去掉,手动修改链接,如果是已经写好的程序,后期才添加路由,修改起链接就太麻烦了

今天无聊就修改了一下U方法,让它按路由规则生成url,再不用一条条修改模版了哈哈哈哈哈哈

下面代码添加到 /ThinkPHP/Common/functions.php 文件U方法里,大概 263行(if($suffix) 前面):

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的更多相关文章

  1. MVC前后台获取Action、Controller、ID名方法 以及 路由规则

    前后台获取Action.Controller.ID名方法 前台页面:ViewContext.RouteData.Values["Action"].ToString();//获取Ac ...

  2. MVC模式中路由如何生成URL

    路由有必要的参数吗 在MVC设计模式中,一个比较重要的步骤是浏览器发送的请求如何生成相应的URL,交给服务器去实例化相应的控制器类然后调用相应的控制器类的对应方法,返回视图给用户.这个流程细说起来比较 ...

  3. ThinkPHP的路由规则和URL生成,结合django的URL理解

    这个知识点,我觉得蛮重要的. 不作任何路由定义的TP,URL格式和controller之间,相当于强绑定. 路由配置,让URL和controller的关系可以自定义. URL生成,让controlle ...

  4. ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php

    1.首先修改Apache的httpd.conf文件. 确认httpd.conf配置文件中加载了mod_rewrite.so 模块,加载的方法是去掉mod_rewrite.so前面的注释#号 讲http ...

  5. asp.net mvc 通过修改路由规则来实现页面的URL多参数传递

    [原文]http://blog.csdn.net/risingsun001/article/details/9068187 修改MVC3中的路由规则 在Global.asax.cs中,修改路由规则 原 ...

  6. Spring Cloud Zuul路由规则动态更新

    背景  Spring Cloud Zuul 作为微服务的网关,请求经过zuul路由到内部的各个service,由于存在着新增/修改/删除服务的路由规则的需求,zuul的路由规则的动态变更功能 提供了 ...

  7. MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)

    前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉 ...

  8. 一种根据URL参数条件动态生成URL的方法

    最近做了一个产品列表页类似于搜索列表页, 功能比较简单,比搜索页复杂的逻辑在于,生成各个查询条件的URL.我们的链接如下: http://xxx.xxx.xxx/product/list.html?s ...

  9. Python学习笔记整理总结【Django】【MVC/MTV/路由分配系统(URL)/视图函数 (views)/表单交互】

     一.Web框架概述  Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 ...

随机推荐

  1. 在开发JavaBean的过程中打开Tomcat的reloadable

    这样可以方便调试,就不用每次修改JavaBean都要重启服务器了,但是要记得,项目deploy阶段的时候要关闭这个选项(考虑服务器的性能问题) 配置Tomcat的/conf/server.xml即可 ...

  2. ajax 基本语法

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  3. 内存单元,CPU对存储器的读写,三大总线

    .存储单元 存储器被分成若干个存储单元,每个存储单元从0开始顺序编号.电子计算机的最小信息单位是bit.8个bit组成一个Byte(虽然现在一个字节可能不是8位,有宽字符出现了,但是一般我们的机器都是 ...

  4. ref和out的使用与区别【转】

    http://www.cnblogs.com/sjrhero/articles/1922902.html out的使用 ———————————————————————————————————————— ...

  5. docker探索-Win10 Docker 安装使用(一)

    本文转自:http://blog.csdn.net/shi1451042748/article/details/52996046 1.前言 Docker最近推出了可以运行在Win10稳定版本,让我们赶 ...

  6. java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

  7. DatagridView内容自动换行和换行符换行

    内容自动换行: 在 DataGridView 新增 Row 时,設定 DataGridView 的 DefaultCellStyle 屬性WrapMode=true: 换行符换行: 在 DataGri ...

  8. java的static块执行时机<转>

    一.误区:简单认为JAVA静态代码块在类被加载时就会自动执行.证错如下: class MyClass1 { static {//静态块 System.out.println("static  ...

  9. jffs2制作与烧写

    JFFS2全名是Journalling Flash File System Version2.最早只支持Nor Flash,自2.6版以后开始支持Nand Flash. JFFS2是Flash上应用最 ...

  10. Java中的 多线程编程

    Java 中的多线程编程 一.多线程的优缺点 多线程的优点: 1)资源利用率更好2)程序设计在某些情况下更简单3)程序响应更快 多线程的代价: 1)设计更复杂虽然有一些多线程应用程序比单线程的应用程序 ...