您现在的位置是:首页 > 教程 > 帝国CMS教程帝国CMS教程
帝国cms结合项url参数怎么优化
怜梦2023-05-21 23:47:49帝国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 ('/<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);
}
//新增代码---jimmy.end-----
如果有多个结合项,可以把上面的代码放到一个函数里面调用方法就更加简单了,只需把 echo $allstr; 替换成 echo beautifyUrl($allstr); 即可
function beautifyUrl($allstr){
//新增代码---jimmy.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);
}
//新增代码---jimmy.end-----
return $allstr;
}
本文标签:
很赞哦! ()
相关文章
随机图文
-
帝国CMS如何提高缩略图质量,帝国CMS缩略图不清晰怎么办
打开e/class/gd.php查找,红色的100就是缩略图的质量参数,一般默认为75(又或者是80),觉得缩略图质量不够的就用这个控制,解决缩略图不清晰的问题. -
帝国CMS内容页怎么调用当前会员投稿的其它信息方法
帝国CMS开放投稿时,希望在会员投稿信息内容页再调用当前会员的其它投稿信息,这当然是可以实现的。 -
帝国CMS增加自定义标签每月月份文章数量统计
兼容帝国原有的使用方式,即网站信息统计标签【总数据】的使用方式相同,但时间为0永远无限,1为今天,2为本月,3为本每年(11表示今年1月,12表示今年2月,...,22表示今年12月),注意不能用4-10,否则会出错。 22以上的数字不计入,即全部为0 -
帝国cms留言板设置联系电话为必填项
帝国cms网站留言板默认设置的必填项为姓名、邮箱、留言内容,但是联系方式却是个选填。帝国网站的留言板我们如何设置联系电话为必填项呢
留言与评论 (共有 条评论) |