我要实现的是关键词替换功能,a、img包含关键词不能替换。
假如【例子】是关键词,关键词出现分这3种情况,不能替换,不然就会破坏html结构
<a href="#" title="这是一个例子而已">这是一个例子而已</a>
<img src="#" alt="我是例子呀">
<a href="#" title="这是一个例子">这是一个例子</a>
<img src="#" alt="我是例子">
<a href="#" title="例子而已">例子而已</a>
<img src="#" alt="例子呀">
被破坏的<img src="#" alt="破坏了<a href="#">例子</a>破坏的可能性有多大?"/>
<?php
function findword($word,$html){
$str_reg = '(<a[^>]+>)(.*)('.$word.')(.*)(<\/a[^>]*>)';
$str_reg .= '|(<img)(.*?)('.$word.')(.*?)(>)' ;
if(preg_match("/$str_reg/",$html)){
return true;
}else{
return false;
}
}
?>
写了个蹩脚函数。貌似不对。
你先把破坏规则的做一下置换,比如htmlspecialchars处理,替换完再置换回去就好了啊