栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > 帝国cms

帝国cms文章内链被拆分导致乱码错位的解决方案

帝国cms 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

帝国cms文章内链被拆分导致乱码错位的解决方案

...内链在seo中的重要作用是毋庸置疑的!

解决帝国cms内链系统会默认替换内容关键词已存在的a链接。

在帝国CMS的内容关键词替换中会遇到替换了原文中已存在的链接,如已经手动添加的关键词链接:帝国CMS ,如果我们在新闻模型内容关键词连接中分别填写了 帝国、cms那么文章中已存在的帝国CMS链接会被拆分,并且链接会错乱。

1、首先我们找到/e/class/functions.php

2、打开文件,搜索://替换关键字

3、替换下面的if(STR_IREPLACe)判断,/i替换为(?!([^<]*>)|([^<]*))/i,如下图。



代码如下(如果问题可以联系帝国CMS仿站技术员qq282.231.8)

//替换关键字
function ReplaceKey($newstext,$classid=0){
    global $empire,$dbtbpre,$public_r,$class_r;
    if(empty($newstext)||$class_r[$classid]['keycid']==-1)
    {return $newstext;}
    $where='';
    if(!empty($class_r[$classid]['keycid']))
    {
        $where=" where cid='".$class_r[$classid]['keycid']."'";
    }
    $sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey".$where);
    while($r=$empire->fetch($sql))
    {
        if(STR_IREPLACE)
        {
            $newstext=empty($public_r[repkeynum])?str_ireplace($r[keyname],''.$r[keyname].'',$newstext):preg_replace('/'.$r[keyname].'(?!([^<]*>)|([^<]*))/i',''.$r[keyname].'',$newstext,$public_r[repkeynum]);
        }
        else
        {
            $newstext=empty($public_r[repkeynum])?str_replace($r[keyname],''.$r[keyname].'',$newstext):preg_replace('/'.$r[keyname].'(?!([^<]*>)|([^<]*))/i',''.$r[keyname].'',$newstext,$public_r[repkeynum]);
        }
    }
    return $newstext;
}

4、原理主要是给添加了一个规则过滤掉已存在的链接,不为连接替换关键词链接。
对以上正则不是很熟可以去学习正则表达式,http://www.sfk8.com/jiaocheng/php/228.html
这样对正则表达式能更深入的了解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/2990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号