感謝作者:jimmy 提供的方案!這種正則過(guò)了方法素材無(wú)憂親測(cè)可行!
帝國(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)化后是不是感覺(jué)清爽了很多
優(yōu)化方法:
在官方的結(jié)合項(xiàng)的函數(shù)方法 echo $allstr; 這行代碼的前面插入以下代碼即可:
//新增代碼---jimmy.start-----
preg_match_all ('/(.*?)/i',$allstr,$matches);
for($i=0;$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 ('/(.*?)/i',$allstr,$matches);
for($i=0;$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結(jié)合項(xiàng)url參數(shù)優(yōu)化-讓URL地址看起來(lái)更美!