本方法适用于帝国cms7.2版本。

需要修改系统文件:e/class/functions.php

原函数:
$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].'/i','<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].'(?![^<]*>)/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);

原理是用正则在系统进行内容关键字替换时,把<>里面的内容排除掉。

本方法干净大方,无累赘,不增加负担~