时间:2021-05-26
如下所示:
//更改模块配置文件'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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了thinkPHP中U方法加密传递参数功能。分享给大家供大家参考,具体如下:thinkPHP中的U方法用于对URL地址进行组装。可自动根据当前的UR
thinkPHP中U方法的定义规则如下(方括号内参数根据实际应用决定):U('[项目://][路由@][分组名-模块/]操作?参数1=值1[&参数N=值N]')
本文实例讲述了thinkphp的URL路由规则与配置方法。分享给大家供大家参考。具体分析如下:一、URL规则1、默认是区分大小写的2、如果我们不想区分大小写可以
本文实例讲述了thinkPHP5.0框架URL访问方法。分享给大家供大家参考,具体如下:URL设计ThinkPHP5.0在没有启用路由的情况下典型的URL访问规
本文实例讲述了php实现把url转换迅雷thunder资源下载地址的方法。分享给大家供大家参考。具体方法分析如下:如果你知道迅雷地址的生成规则你就不觉得迅雷的u