帝國(guó)官方結(jié)合項(xiàng)如果同一個(gè)字段不同值點(diǎn)擊兩次以上url就會(huì)出現(xiàn)重復(fù)的參數(shù),當(dāng)然對(duì)功能是沒(méi)有影響的,感覺(jué)不大美觀!
優(yōu)化前:
/e/action/ListInfo.php?&classid=19&orderby=psalenum&myorder=1&ph=1&classid=19&pbrand=27&orderby=psalenum&myorder=1&myorder=1
優(yōu)化后:
/e/action/ListInfo.php?classid=19&orderby=psalenum&myorder=1&ph=1&pbrand=27優(yōu)化方法
在官方的結(jié)合項(xiàng)的函數(shù)方法 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-----
如果有多個(gè)結(jié)合項(xiàng),可以把上面的代碼放到一個(gè)函數(shù)里面調(diào)用方法就更加簡(jiǎn)單了,只需把 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; }
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: 帝國(guó)cms二次開(kāi)發(fā)結(jié)合項(xiàng)url參數(shù)優(yōu)化