帝国cms结合项url参数优化-让URL地址看起来更漂亮!
发布时间:2022-04-14 10:23:30 所属栏目:经验 来源:互联网
导读:帝国官方结合项如果同一个字段不同值点击两次以上url就会出现重复的参数,当然对功能是没有影响的,感觉不大美观! 优化前:/e/action/ListInfo.php?classid=19orderby=psalenummyorder=1ph=1classid=19pbrand=27orderby=psalenummyorder=1myorder=1 优化后:
帝国官方结合项如果同一个字段不同值点击两次以上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; (编辑:通化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐