您现在的位置是:首页 > 教程 > 帝国CMS教程帝国CMS教程
帝国cms结合项url参数优化URL地址的方法
章达2023-04-25 23:22:55帝国CMS教程已有人查阅
导读这种正则过了方法小编亲测可行!帝国官方结合项如果同一个字段不同值点击两次以上url就会出现重复的参数,当然对功能是没有影响的,感觉不大美观!
这种正则过了方法小编亲测可行!帝国官方结合项如果同一个字段不同值点击两次以上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;这行代码的前面插入以下代码即可:
//新增代码
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);
}
如果有多个结合项,可以把上面的代码放到一个函数里面调用方法就更加简单了,只需把echo $allstr;替换成echo beautifyUrl($allstr);即可
function beautifyUrl($allstr){
//新增代码
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);
}
//新增代码
return$allstr;
}
本文标签:
很赞哦! ()
相关文章
- 帝国cms自定义字段ReturnClassAddField标签截取字数的方法
- 自定义函数解决帝国cms简介截取字符出现html代码的方法
- 本地环境phpStudy搭建帝国CMS的方法
- 帝国cms提示Table 'px.***_enewspubtemp_2' doesn't exist的解决方法
- 帝国cms通过栏目ID获取栏目名称,别名,链接的方法
- 帝国CMS二次开发新浪iplookup根据ip跳转到不同域名的方法
- 帝国CMS怎么实现内容关键字替换图片alt的办法
- 帝国CMS怎么使用egetip()获取用户IP函数
- 帝国cms二次开发实现纯JS版的地区联动筛选功能
- 帝国CMS批量提取第一张图片为标题缩略图的方法
- 帝国cms自带ckeditor编辑器代码高亮的方法codesnippet风格
- 帝国CMS文章和TAG删除编号ID从1开始的方法
随机图文
-
帝国cms怎么实现TAG标签以TAGID伪静态的方法
帝国cms简单修改实现TAGS以TAGID的方式伪静态,注:此方法已经从帝国7.5原版测试通过!(本方法修改系统文件) -
帝国CMS跨域上传,附件分离的插件
使用场景:小伙伴网页空间比较小,然而又需要放置大量下载的情况使用。比如网站使用的一般空间或者服务器,空间和带宽比较小,但是性能和价格比较好。然后又买了一个服务器或者空 -
帝国CMS怎么取消会员注册时候的邮箱必填选项
帝国CMS会员注册的时候,邮箱是必填项,但有时候,我们希望注册时不需要填写邮箱,但帝国CMS并没有给这样一个可以关闭的设置项。通过本教程就可以实现取消邮箱必填。 -
帝国cms数据表phome_ecms_news_doc_data介绍
phome_ecms_news_doc_data新闻系统模型-档案副表
留言与评论 (共有 条评论) |