帝国cms如何优化结合项url参数
时间:2025-11-22 16:53:30|栏目:帝国CMS|点击: 次
优化前:
/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);
}
//新增代码end如果有多个结合项,可以把上面的代码放到一个函数里面调用方法就更加简单了,只需把 echo $allstr; 替换成 echo beautifyUrl($allstr); 即可
function beautifyUrl($allstr){
//新增代码start
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);
}
//新增代码end
return $allstr;
}您可能感兴趣的文章


阅读排行
推荐教程
- 09-22帝国cms怎么查看某个目录权限
- 09-22帝国cms怎么建站
- 09-22帝国cms源码怎么查看
- 09-22帝国cms怎么设置邀请码
- 11-22帝国CMS二次开发调用评论我的列表
- 11-22帝国cms中新建栏目提示“建立目录不成功,请检查目录权限”
- 11-22帝国CMS自定义列表查询SQL语句,从第N条开始查询的方法
- 11-22帝国CMS在js登陆模板中调用当前登陆用户的头像!
- 11-22帝国CMS二次开发如何设置随机会员头像
- 11-22帝国cms在当前栏目页下面调用相关栏目别名的栏目





