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

帝国教程 强烈建议 2024-03-04 08:39 342 0

  感谢作者: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 ('/(.*?)/i',$allstr,$matches); for($i=0;$i $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 ('/(.*?)/i',$allstr,$matches); for($i=0;$i $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; }

本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!