公告:123目录网为广大站长提供免费收录网站服务,我们将免费进行到底,如需快审服务(10元/站)请联系站长QQ,可自助充值发布。

点击这里在线咨询客服
新站提交
  • 网站:315
  • 待审:0
  • 小程序:12
  • 文章:35791
  • 会员:69

感谢作者:jimmy 提供的方案!这种正则过了方法亲测可行!

帝国官方结合项如果同一个字段不同值点击两次以上url就会出现重复的参数,当然对功能是没有影响的,感觉不大美观!
优化前:/e/action/ListInfo.php?&classid=19&orderby=psalenum&myorder=1&ph=1&classid=19&pbrand=27&orderby=psalenum&myorder=1&myorder=1
优化后:/e/action/ListInfo.php?classid=19&orderby=psalenum&myorder=1&ph=1&pbrand=27

优化后是不是感觉清爽了很多

优化方法:

在官方的结合项的函数方法 echo $allstr; 这行代码的前面插入以下代码即可:



    //新增代码---jimmy.start-----
preg_match_all ('/<a href=\"(.*?)\".*?>(.*?)<\/a>/i',$allstr,$matches);
        for($i=0;$i<count($matches[1]);$i++){
                 $url = $matches[1][$i];
                 $parts = parse_url($url);
                 $query = explode('&', $parts[query]);
                 $output=array();
                 foreach ($query as $key => $value) {
                         if($value){
                            $params = explode('=', $value);
                            if($params[0]){
                                    $output[$params[0]]=urldecode($params[1]);
                            }
                        }
                 }
  
              $newurl = $parts[path].'?'.http_build_query($output);

                 $allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"',  $allstr);
        }

    //新增代码---jimmy.end-----




如果有多个结合项,可以把上面的代码放到一个函数里面调用方法就更加简单了,只需把  echo $allstr; 替换成  echo beautifyUrl($allstr); 即可



function beautifyUrl($allstr){
    //新增代码---jimmy.start-----
    preg_match_all ('/<a href=\"(.*?)\".*?>(.*?)<\/a>/i',$allstr,$matches);
    for($i=0;$i<count($matches[1]);$i++){
         $url = $matches[1][$i];
         $parts = parse_url($url);
         $query = explode('&', $parts[query]);
         $output=array();
         foreach ($query as $key => $value) {
            if($value){
                $params = explode('=', $value);
                if($params[0]){
                    $output[$params[0]]=urldecode($params[1]);
                }
            }
         }
  
          $newurl = $parts[path].'?'.http_build_query($output);

         $allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"',  $allstr);
    }
    //新增代码---jimmy.end-----
    return  $allstr;   
}

 

标签:帝国cms结合项url参数优化-让URL地址看起来更美!

下一篇:【帝国cms代码】帝国CMS栏目ID+结合项伪静态,支持分页

上一篇:【帝国cms代码】帝国CMS播放字段onlinepath添加自动“第N集”播放名称的方法

相关文章

  575

注册时间:

网站:1 个   小程序:3 个  文章:12 篇

  • 315

    网站

  • 12

    小程序

  • 35791

    文章

  • 69

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康

体育训练成绩评定2018-06-03

通用课目体育训练成绩评定