帝国CMS电脑手机数据同步仿站全套高清视频教程在线观看
软件下载| 会员注册| 会员登陆| 淘宝店铺

大小:15.12 MB
当前版本:V1.0
更新时间:2019.8.1

当前位置: 首页 > 常见问题 > 帝国CMS问题 >
帝国cms结合项筛选url地址参数优化-让地址栏不重复链接条件!
发布者:  时间:2020-02-05 23:19:42  已阅读:

帝国官方结合项如果同一个字段不同值点击两次以上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;   
}

 

相关新闻