帝国cms内容关键字替换 不替换图片alt中关键字

发布时间:2020-05-24编辑:脚本学堂
本文介绍下,在帝国cms中进行内容关键字的替换,要求不替换图片alt中的关键字的实现方法,有需要的朋友参考下吧。

此功能:
仅限于系统设置了替换次数。

不建议把整篇文章都替换,那样页面中如果出现关键字过多,会影响内链效果的。
如果系统设置中设置的替换成1次,2次,只要不是0,那么修改function.php中的ReplaceKey函数,425行,修改如下:

原函数:
 

复制代码 代码示例:
$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 href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);

修改为:
 

复制代码 代码示例:
$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 href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);

说明:
使用preg_replace函数进行正则判断,使用正则表达式把<>中的排除掉,如此问题解决。