欢迎来到素材无忧网,按 + 收藏我们
登录 注册 退出 找回密码

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

时间: 2024-02-25 09:30 阅读: 作者:素材无忧网

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

版权声明: 本站资源均来自互联网或会员发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

转载请注明: 帝国cms结合项url参数优化-让URL地址看起来更美!

模板推荐