Code前端首页关于Code前端联系我们

御cms二次开发:结合URL参数优化——让URL地址更漂亮!

terry 2年前 (2023-09-25) 阅读数 48 #后端开发

如果在帝国官方组合中的URL上点击相同字段不同值两次以上,就会出现重复参数。当然不影响功能,而且感觉不美观!
优化前: /e/action/ListInfo .php?&classid=19&orderby=psalenum&myorder=1&ph=1&classid=19&pbrand=27&orderby=psalenum&myorder=1&myorder=1
优化后。 =19&orderby=psalenum&myorder=1&ph=1&pbrand=27

优化后感觉清爽多了

优化方法:

在官方组合元素函数方法echo $allstr之前添加以下代码;这行代码:


//新代码--jimmy.start-----
preg_match_all('/(.* ?)/i',$allstr ,$matches);
for($i=0;$i $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 ('/
(.*?)/i',$allstr,$ matches);
for($i=0;$i $value) {
if($value){
$params =explode('=', $value);
if($params[0]){
$output[$params[0] ]=urldecode($params[1]);
}
}
}

$newurl = $ parts[路径].'?'.http_build_query($output);

$allstr = str_replace('href="'.$url.'"', 'href="'.$newurl.'"', $ allstr);
}
//新代码---jimmy。 end-----
back $allstr;
}

感谢作者:jimmy提供解决方案!个人测试是可以的。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门