卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章11201本站已运行3223

帝国cms二次开发结合项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; 这行代码的前面插入以下代码即可:

//新增代码---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;   
}

卓越飞翔博客
上一篇: 帝国CMS二次开发PHP循环栏目和栏目下的信息
下一篇: phpcms标签大全,制作模板必收藏
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏