Ecmsphp开发中心

1252

帖子

19

跟帖

8

粉丝

用户组:普通会员

头    衔:白银会员

版主

积分
356930
登陆
2134 次
私信
注册时间
2014-06-21 14:06:06
最后登陆时间
2023-09-24 16:04:46

帝国CMS教程:结合项url参数优化的方法

 [只看主题]
楼主
0 |
发表: 3 年前
| |
| |
跳转

帝国cms结合项url参数优化的方法介绍,是教大家如何优化结合项url参数的教程。


帝国官方结合项如果同一个字段不同值点击两次以上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; 这行代码的前面插入以下代码即可:


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);

        }



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


function beautifyUrl($allstr){

    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);

    }

    return  $allstr;   

}


以上是结合项url参数优化的教程。

ecmsphp开发中心
ecmsphp开发中心
验证码 换一个

当前在线人数: 0
取消

感谢您的支持,我们会继续努力!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

×

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

帝国CMS教程:结合项url参数优化的方法