重复替换次数为单个关键字在某一篇文章中的替换次数。设置为0,不限制。

函数代码,则实在在e/class/functions.php中,关键部分为:

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]);

可见$public_r[repkeynum]就表示替换次数,为0或空的时候,使用str_replace函数,一股脑替换;不为空的时候,使用preg_replace函数进行有次数限制的正则替换。

情形一对应的正则为: 你好[^<]*>,所以我们构造“?!([^<]*>)”排除。
情形二对应的正则为: 你好[^<]*< a=””>,所以我们构造“?!([^<]*< a=””>)”排除。

合并后为 (?!([^<]*>)|([^<]*< a=””>))。

解决方案:

上述文件中对应的函数位置,修改正则即可。记住有两个地方。

修改前的正则为:’/’.$r[keyname].’/i’

修改后为:’/’.$r[keyname].'(?!([^<]*>)|([^<]*< a=””>))/i’

以下方截图为准:

帝国cms如何禁止内容关键字替换ALT和A标签中的关键词插图