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

损伤 采集 硬盘 求助 帝国 新版 教程下载 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://www.ecmsw.cn/ask/39.html
回复列表
1.
这是一个好功能。
2.
支持下
3.
支持下
4.
感谢大佬。确认是特殊字符的原因。因为批量导入关键词,而且特殊字符比较少没注意
5.
感谢楼主!
6.
支持一下
7.
支持一下
8.
你好,如果内容关键字是批量添加的。没办法规避特殊字符 有什么办法过滤呢?特色字符包含哪些?
9.
支持下
10.
支持
11.
检查是不是有特殊字符的字
相关问题

仿站网专注于帝国CMS仿站及二次开发、模板定制等各种有关帝国CMS程序疑难杂症!
Copyright@2016-2019 仿站网 www.ecmsw.cn
鲁ICP备17005488号-1 鲁公网安备 37018102000481号