thinkphp中U方法按路由规则生成url的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-04 23:12:54 浏览: 评论:0
下面小编就为大家分享一篇thinkphp中U方法按路由规则生成url的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。
如下所示:
//更改模块配置文件
'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);
- }
- }
- }
- }
Tags: thinkphp路由规则 生成url
相关文章
- ·thinkphp的URL路由规则与配置实例(2021-04-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)