帝国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;
}相关帝国教程
- 01-16帝国cms友情链接三种调用方法
- 11-03帝国cms wap模板中调用栏目的分类
- 05-06帝国CMS电影视频模板内容页获取总集数的代码
- 08-29帝国CMS二次开发替换“当前位置导航newsnav
- 12-28帝国下载内容页模板里调用下载扣除点数
- 11-27帝国cms安全吗
- 03-30帝国CMS灵动标签SQL调用同时调用多条广告
- 04-01帝国CMS使用esub/substr截取前面(或后面)两个字符(或多个字符)
- 07-18帝国cms后台模型newstext字段设置编辑器高度
- 01-24帝国CMS调用当天发布的信息
- 12-03帝国cms灵动标签标题颜色失效的解决方法
- 08-22帝国模板留言板增加自定义字段教程
- 08-18帝国cms提交表单出现“带*项为必填”
- 12-08帝国cms自动刷新内容页代码
- 05-27帝国cms广告插件调用的两种方法
- 06-30帝国CMS如何提高缩略图质量
- 06-14帝国CMS退出会员登录后怎么跳转到指定网址
- 08-30帝国cms清理生成的重复垃圾信息html
- 01-13帝国CMS模板使用灵动标签制作“隔行变色”功能的方法(简单)
- 08-24帝国CMS调用移动端访问地址