小李SEO博客

网站优化服务

帝国cms结合项url参数优化-让URL地址看起来更美!

感谢作者:jimmy 提供的方案!这种正则过了方法墨鱼亲测可行!

帝国官方结合项如果同一个字段不同值点击两次以上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;
}

上一篇:帝国CMS增加信息自动把内容图片的alt和title属性替换为信息标题 下一篇:帝国CMS无相关信息时调用其它信息方法利于优化以及填充位置
相关帝国cms文章阅读
  • 帝国CMS修改图集默认显示模板格式

    帝国CMS 的图集字体 !----morepic--] 默认自带的输出模板是用table表格的。非常不利于配合JS制作各种图集特效。 想要自定义图片集输出模板方法有二: 1、修改 !----morepic--] 字段模板: 打开 e/cla...

  • 帝国CMS父栏目,终极栏目,非终极栏目的区别

    首先必须要认识这3个栏目的意思 父栏目:就是通常所说的大栏目,每个父栏目下面可以包含若干个子栏目和终极栏目。父栏目下不可以直接增加信息(文章)。 终极栏目:指没有子栏目的栏目,...

  • 帝国cms自定义列表多表联合查询方法

    小李网络公司介绍帝国cms自定义列表多表联合查询方法知识,包括我的自定义帝国无尽空间2联合帝国剧情联合帝国的相册帝国时代2自定义战役帝国cms自定义列表人类联合帝国联合帝国忠诚者三国...

  • 帝国CMS灵动标签调用指定某个时间段的信息(日期时间归档)多种写法

    主要是对这篇文章的补充https://www.moyublog.com/notes/317.html 1、某天发布的文章 [e:loop={news,10,18,0,newstime=.to_time(2010-11-11 00:00:01). and newstime=.to_time(2010-11-11 23:59:59).}] a href=?=$bqsr[titleurl]? target=_blank?=$b...

  • 帝国CMS视频播放页的在线观看地址实现当前播放名称加亮高亮

    以下是它的PHP: 当前播放名称 是:?=$showdown_r[0]? ?php } if($r[onlinepath]) $j=0; $od_record=explode(\r\n,$r[onlinepath]); for($i=0;$icount($od_record);$i++) { $j=$i+0; $od_field=explode(::::::,$od_record[$i]); //权限 echolia href=?cl...

  • 帝国CMS多作者调用(包括有作者链接和没有连接)的方法

    多个作者的调用 方法1、标签调用 !--writer--] ---------------------------------------------------- 方法2、代码分割调用(用php分割$navinfor[writer]字段内容再显示) ①、没有作者链接 ?php $w=explode(,,$navinfor[wr...

  • 帝国CMS灵动标签排序写法

    栏目排序: order by `classid` desc 按栏目ID降序 order by `classid` asc 按栏目ID升序 order by myorder desc 按栏目自定义排序 order by myorder asc 按栏目自定义降序...

  • 帝国CMS前台投稿编辑器上传图片自动添加水印方法

    帝国CMS后台有水印功能,可以在后台参数设置中设置水印图片,但不支持前台。前台编辑器不支持水印功能。使用以下方法即可实现: 以最新版帝国CMS7.0 utf-8 为例: 1、打开e/class/qinfofun.php 文...

  • 帝国CMS灵动标签判断某个字段有内容则显示1无内容则显示2

    灵动标签判断某个字段有内容则显示无内容则显示什么,听起来是不是很拗口,但有此需求的站长一定知道是这啥意思吧,其实就是判断某字段是否为空,其实这种判断是非常简单的,这里只...

  • 帝国CMS评论列表标签showplinfo调用会员头像userpic的方法

    先看一下效果! 改造方法如下: /e/class/t_functions.php 打开这个文件: 找到: if(empty($r['username'])) { $r['username']='匿名'; } 在下面增加: $addr=$empire-fetch1(select * from {$dbtbpre}enewsmemberadd where userid='$...

  • 帝国CMSSQL标签多表查询

    看到论坛里很多人都在问,如果能在用户投稿的文章后显示该用户的头像,如果能在 企业用户发布的信息 后显示该企业的其他信息等 其实这些功能可以用SQL标签来实现的,现在我们来简单的...

  • 帝国CMS信息置顶扣除相应积分

    首先在所需的系统模型中添加int字段 top,单选按钮0,1(0为否,1为是)。主要修改e/class/qinfofun.php两处 一处为增加,一处为编辑。 在文件中找到esetcookie(lastaddinfotime,time(),time()+3600*24);下面到...

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640