• 售前

  • 售后

热门帖子
入门百科

thinkphp中U方法按路由规则天生url的方法

[复制链接]
凡八哥 显示全部楼层 发表于 2021-10-25 19:24:15 |阅读模式 打印 上一主题 下一主题
如下所示:
  1. //更改模块配置文件
  2. 'URL_ROUTER_ON'   => true,
  3. 'URL_ROUTE_RULES'=>[]//编写路由优化
复制代码
tp开启路由后,使用U方法是不会按路由规则天生url的,一般我们是要手动修改模版,把内里的U方法去掉,手动修改链接,假如是已经写好的程序,后期才添加路由,修改起链接就太贫苦了
本日无聊就修改了一下U方法,让它按路由规则天生url,再不消一条条修改模版了。
下面代码添加到 /ThinkPHP/Common/functions.php 文件,在U方法内里直接搜刮if($suffix),在前面参加以下代码,u方法天生的url就是按照路由规则天生的呢!
  1. if(C('URL_ROUTE_RULES')){
  2. foreach (C('URL_ROUTE_RULES') as $rule=>$real) {
  3.   if(strpos($url, $real)!==false){
  4.    $url = str_replace($real, $rule, $url);
  5.    preg_match("/\/(\w+)\.php\/(\w+)/", $url, $match);
  6.    if(isset($match[1]) && isset($match[2]) && $match[1][0]==$match[2][0]){
  7.     $url = preg_replace("/\/(\w+)\.php/", '', $url);
  8.    }elseif(strpos($url, 'index.php')!==false){
  9.     $url = str_replace("/index.php", '', $url);
  10.    }else{
  11.     $url = str_replace(".php", '', $url);
  12.    }
  13.    preg_match_all("/(:\w+)/", $rule, $matches);
  14.    foreach ((array)$matches[1] as $match) {
  15.     $url = str_replace($match . '/', '', $url);
  16.     $url = str_replace(substr($match, 1) . '/', '', $url);
  17.    }
  18.   }
  19. }
  20. }
复制代码
以上这篇thinkphp中U方法按路由规则天生url的方法就是小编分享给各人的全部内容了,希望能给各人一个参考,也希望各人多多支持脚本之家。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作