帖子详情
 
 
  • [帝国cms教程]帝国cms结合项url参数优化的教程
  • 白银会员 Ecmsphp开发中心 只看楼主 4 年前
  • 帝国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参数优化的教程。

  • 收藏 推荐 打赏微信打赏 举报
共有条回复