解决方法一:
仅限于系统设置了替换次数,实际上从seo来说不建议把整篇文章都替换,那样页面中如果出现关键字过多,那么相同连接就泛滥了,如果你系统设置中设置的替换成1次,2次,只要不是0,那么修改e/class/functions.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是正则判断,就用正则表达式把<>里面的排除掉。这样一来问题就解决了。以上代码只是防止 ALT属性被替换
修改前记得备份,改坏了不负责。 本方法干净大方,无累赘,不增加负担~ 在6.6版本测试通过。
alt与超L接被替换的解决方法
使用正则 '/'.$r[keyname].'(?!([^<]*>)|([^<]*</a>))/i' 红色为增加的正则,该方法在 7.2UTF8测试通过
解决方法二:
在e/class/functions.php中,查找代码:“ function ReplaceKey($newstext,$classid=0)” 或 “//替换关键字”(有时打开为utf-8时中文显示为乱码)
此方法为本站(玖富圈网赚)自用的解决方案 效果杠杠的 不需要设置替换次数
把这一大段(即:“//替换关键字”部分)替换为以下代码:
-----------------------------------------------------------------------------------------------
//替换关键字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']."'"; } $newstext=stripslashes($newstext); preg_match_all('/<a[^>](.*)a>|<img[^>](.*)>/isU',stripslashes($newstext),$rs); if($rs[0]){ foreach($rs[0] as $k=>$v){ $newstext=str_replace($v,"[!--{$k}--]",$newstext); } } $sql=$empire->query("select keyname,keyurl from {$dbtbpre}enewskey".$where); 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].'/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].'/i','<a href='.$r[keyurl].' target=_blank class=infotextkey>'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]); } } if($rs[0]){ foreach($rs[0] as $k=>$v){ $newstext=str_replace("[!--{$k}--]",$v,$newstext); } } return $newstext;}
至此教程结束,如您转载 请注明转载自玖富圈网赚博客,感谢您的支持!