帝国cms内容关键字把alt里的字符都给替换了,怎么解决?
问题
1,<a class="infotextkey" href="/zt/dnfhhgjzt" target="_blank" rel="noopener">DNF</a>syhfioshhbzt target=_blank class=infotextkey>
地下城 地下城这个关键字链接中有个dnf,结果这个dnf又被关键词DNF给替换了,请问怎么解决呢?
2,<img title="王者荣耀" alt="<a href=" />王者荣耀艾琳专精装怎么样?艾琳专精装效果介绍图片1" src="
解决方法一:
仅限于系统设置了替换次数,实际上从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属性被替换
修改前记得备份,改坏了不负责。 本方法干净大方,无累赘,不增加负担~ 在7.5版本测试通过。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。