[分享]内容关键字实现优先长词,图片与链接中不再重复内链

发布时间:2019-10-12

仿站网>问答 > [分享]内容关键字实现优先长词,图片与链接中不再重复内链
踩了不少坑。分享下面这段代码给有需要的人   还有请大神帮忙解决另一个问题,内容关键字数量多会出现不替换的问题。

修改位置/e/class/funtions.php
1.优先长词    "select keyname,keyurl from {$dbtbpre}enewskey".$where 改成 "select char_length(keyname) AS num,keyname,keyurl from {$dbtbpre}enewskey".$where." ORDER BY num DESC" //order前面有个空格
2.不再重复内链 需要修改两处   '/'.$r[keyname].'/i' 改成 '/'.$r[keyname].'(?!([^<]*>)|([^<]*</a>))/i'  




//替换关键字
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 char_length(keyname) AS num,keyname,keyurl from {$dbtbpre}enewskey".$where." ORDER BY num DESC");//优先长词
        while($r=$empire->fetch($sql))
        {
                if(STR_IREPLACE)
                {
                        $newstext=empty($public_r[repkeynum])?str_ireplace($r[keyname],'<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'(?!([^<]*>)|([^<]*</a>))/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
                }
                else
                {
                        $newstext=empty($public_r[repkeynum])?str_replace($r[keyname],'<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext):preg_replace('/'.$r[keyname].'(?!([^<]*>)|([^<]*</a>))/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);
                }
        }
        return $newstext;
}

回复列表
1.
这是一个好功能。
2.
支持一下
3.
检查是不是有特殊字符的字
4.
支持
5.
支持下
6.
你好,如果内容关键字是批量添加的。没办法规避特殊字符 有什么办法过滤呢?特色字符包含哪些?
7.
支持一下
8.
支持一下
9.
感谢楼主!
10.
感谢大佬。确认是特殊字符的原因。因为批量导入关键词,而且特殊字符比较少没注意
11.
支持下
相关问题
仿站网专注于帝国CMS仿站及二次开发、模板定制等各种有关帝国CMS程序疑难杂症!
  • 首页
  • 客服
  • 头部