01 07 19:04:02 周二
官方群聊
当前位置: > 首页 > 新闻资讯 > 网站运营> >帝国cms结合项筛选url地址参数优化-让地址栏不重复链接条件!

帝国cms结合项筛选url地址参数优化-让地址栏不重复链接条件!

投稿作者:技术导航 围观人数:

  帝国官方结合项如果同一个字段不同值点击两次以上url就会出现重复的参数,当然对功能是没有影响的,感觉不大美观!WyO技术导航 - 学习技术 从这里开始

  优化前:/e/action/ListInfo.php?&classid=19&orderby=psalenum&myorder=1&ph=1&classid=19&pbrand=27&orderby=psalenum&myorder=1&myorder=1WyO技术导航 - 学习技术 从这里开始

  优化后:/e/action/ListInfo.php?classid=19&orderby=psalenum&myorder=1&ph=1&pbrand=27WyO技术导航 - 学习技术 从这里开始

  优化后是不是感觉清爽了很多,解决官方地址条件重复的现像!WyO技术导航 - 学习技术 从这里开始

  优化方法:WyO技术导航 - 学习技术 从这里开始

  在官方的结合项的函数结尾的地方echo $allstr;这行代码的前面插入以下代码即可:(如图所示)WyO技术导航 - 学习技术 从这里开始

  //新增代码---jimmy.start-----WyO技术导航 - 学习技术 从这里开始

  preg_match_all ('/(.*?)<\/a>/i',$allstr,$matches);WyO技术导航 - 学习技术 从这里开始

  for($i=0;$i WyO技术导航 - 学习技术 从这里开始

  $url = $matches[1][$i];WyO技术导航 - 学习技术 从这里开始

  $parts = parse_url($url);WyO技术导航 - 学习技术 从这里开始

  $query = explode('&', $parts[query]);WyO技术导航 - 学习技术 从这里开始

  $output=array();WyO技术导航 - 学习技术 从这里开始

  foreach ($query as $key => $value) {WyO技术导航 - 学习技术 从这里开始

  if($value){WyO技术导航 - 学习技术 从这里开始

  $params = explode('=', $value);WyO技术导航 - 学习技术 从这里开始

  if($params[0]){WyO技术导航 - 学习技术 从这里开始

  $output[$params[0]]=urldecode($params[1]);WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  $newurl = $parts[path].'?'.http_build_query($output);WyO技术导航 - 学习技术 从这里开始

  $allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"',$allstr);WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  //新增代码---jimmy.end-----WyO技术导航 - 学习技术 从这里开始

WyO技术导航 - 学习技术 从这里开始

  如果有多个结合项,可以把上面的代码放到一个函数里面调用方法就更加简单了,只需把echo $allstr;替换成echo beautifyUrl($allstr);即可WyO技术导航 - 学习技术 从这里开始

  function beautifyUrl($allstr){WyO技术导航 - 学习技术 从这里开始

  //新增代码---jimmy.start-----WyO技术导航 - 学习技术 从这里开始

  preg_match_all ('/(.*?)<\/a>/i',$allstr,$matches);WyO技术导航 - 学习技术 从这里开始

  for($i=0;$i WyO技术导航 - 学习技术 从这里开始

  $url = $matches[1][$i];WyO技术导航 - 学习技术 从这里开始

  $parts = parse_url($url);WyO技术导航 - 学习技术 从这里开始

  $query = explode('&', $parts[query]);WyO技术导航 - 学习技术 从这里开始

  $output=array();WyO技术导航 - 学习技术 从这里开始

  foreach ($query as $key => $value) {WyO技术导航 - 学习技术 从这里开始

  if($value){WyO技术导航 - 学习技术 从这里开始

  $params = explode('=', $value);WyO技术导航 - 学习技术 从这里开始

  if($params[0]){WyO技术导航 - 学习技术 从这里开始

  $output[$params[0]]=urldecode($params[1]);WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  $newurl = $parts[path].'?'.http_build_query($output);WyO技术导航 - 学习技术 从这里开始

  $allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"',$allstr);WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始

  //新增代码---jimmy.end-----WyO技术导航 - 学习技术 从这里开始

  return$allstr;WyO技术导航 - 学习技术 从这里开始

  }WyO技术导航 - 学习技术 从这里开始


the end
免责声明:本文来自技术导航发布,但不代表本站的观点和立场。
上一篇: SQL语句批量修改帝国CMS发布时间至最新的简单方法 下一篇: 您可能尚未使用的13种高级链接构建策略