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

损伤 采集 硬盘 求助 帝国 新版 教程下载 CMS 优先 重复 关键字 链接

您的位置:仿站网 > 问答
踩了不少坑。分享下面这段代码给有需要的人   还有请大神帮忙解决另一个问题,内容关键字数量多会出现不替换的问题。

修改位置/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;
}

转载请注明本文地址:[分享]内容关键字实现优先长词,图片与链接中不再重复内链 https://mip.ecmsw.cn/ask/39.html
回复列表
1.
这是一个好功能。
2.
支持下
3.
支持下
4.
感谢大佬。确认是特殊字符的原因。因为批量导入关键词,而且特殊字符比较少没注意
5.
感谢楼主!
6.
支持一下
7.
支持一下
8.
你好,如果内容关键字是批量添加的。没办法规避特殊字符 有什么办法过滤呢?特色字符包含哪些?
9.
支持下
10.
支持
11.
检查是不是有特殊字符的字
相关问题
仿站网专注于帝国CMS仿站及二次开发、模板定制等各种有关帝国CMS程序疑难杂症!
电话 短信 客服 联系