帝国cms二次开发结合项url参数优化
发布时间:2020-07-02作者:帝国建站网
帝国官方结合项如果同一个字段不同值点击两次以上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; }
相关帝国教程
- 09-19wordpress性能优化教程
- 10-17帝国CMS二次开发调用当前信息tags
- 06-29后台生成的广告JS被广告插件过滤的解决方法
- 06-20帝国CMS判断栏目有无下级栏目的方法
- 09-24帝国CMS报错Fatal error: Maximum execution time of
- 06-08帝国CMS的灵动标签同时调用头条(1级、2级)、推荐(1级、2级)多种方法
- 08-21帝国cms结合项去除like匹配为数字型完全匹配方法
- 08-07帝国cms内容页某个字段没有填写就不显示的解决方法
- 08-21帝国CMS让标签参数支持系统变量
- 11-21帝国CMS随机调用N个终极栏目的方法
- 06-19帝国CMS二次开发封面模板调用栏目别名
- 02-11解决帝国CMS设置关键词与内容图片链接冲突问题
- 06-12帝国cms前台会员投稿之后转到该信息页面
- 04-18帝国CMS动态页支持栏目导航标签,循环子栏目数据标签,万能标签的调用
- 09-28帝国CMS会员中心模板中判断收藏夹是否有内容
- 10-08帝国CMS模板使用灵动标签制作隔行变色功能的方法
- 02-15帝国cms当前位置newsnav“首页”两个字修改方法
- 06-26wordpress开发教程:获取当前文章的前几篇以及后几篇文章
- 03-19帝国CMS内容页判断下载字段是否有值
- 04-01帝国CMS使用esub/substr截取前面(或后面)两个字符(或多个字符)