比如 你内容里面的图片alt和title里面有关键词和关键词替换的一直,这个关键词替换就会把alt和title的给替换了,这样就导致你的图片不能显示,页面也给破坏了,还有就是有时有英文的关键词,这时刚好有这个页面的链接里面有这个英文,它又把链接在重新替换一次,又导致页面破坏!
那么有什么办法解决吗?
解决办法:打开e/class/functions.php
查找
'/'.$r[keyname].'/i'
替换为
'/'.$r[keyname].'(?!([^<]*>)|([^<]*<\a="">))/i'
帝国cms 7.5 这个位置在functions.php文件的560和564的位置,以下就是修改后的代码
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]); //添加(?!([^<]*>)|([^<]*<\a="">))以防止替换图片ALT和title中的关键词为链接和超链接内容
}
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]);
}