21,881
社区成员
发帖
与我相关
我的任务
分享
$str = '<div>欢迎访问<a href="http://bbs.csdn.net/">CSDN论坛</a> 和 <a href="http://www.baidu.com"><a href="http://www.baidu.com">百度官网</a></a></div> <span class="sensitiveword"><span class="sensitiveword"><span class="sensitiveword">今日头条</span></span></span>';
$str = preg_replace(array('/<a[^>]*>(.*?)<\/a>/is' , '/<span class="sensitiveword">(.*?)<span>/is'), "$1", $str);
echo $str;
$str = '<span class="test">CSDN论坛</span> <span class="sensitiveword">百度官网</span> <span class="sensitiveword"><span class="sensitiveword">今日头条</span></span>';
preg_match_all('/<span[^>]+?class="sensitiveword"[^>]*?>/', $str, $matchs);
$num = count($matchs[0]);
for($i=1; $i<=$num; $i++) {
$str = preg_replace('/(<(span)[^>]+?class="sensitiveword"[^>]*?>)([^\s]*?)(<\/\2>)/', '$3', $str);
}
$str ='<span class="test">CSDN论坛</span> <span class="sensitiveword">百度官网</span> <span class="sensitiveword"><span class="sensitiveword">今日头条</span></span>';
preg_match_all('/(<(span)[^>]+?class="sensitiveword"[^>]*?>)([^\s]*?)(<\/\2>)/', $str, $matchs);
$num = count($matchs[1]);
for($i=1; $i<=$num; $i++) {
$str = preg_replace('/(<(span)[^>]+?class="sensitiveword"[^>]*?>)([^\s]*?)(<\/\2>)/', '$3', $str);
}
$str ='<span class="test">CSDN论坛</span> <span class="sensitiveword">百度官网</span> <span class="sensitiveword"><span class="sensitiveword">今日头条</span></span>';
$result = preg_replace('/<\/?span([^>]+?)?>/', '', $str);
echo $result;
我需要得到的结果是:
<span class="test">CSDN论坛</span> 百度官网 今日头条
只过滤 class=sensitiveword的内容preg_replace('/<\/?span([^>]+?)?>/', '', $str)
<div>欢迎访问<a href="http://bbs.csdn.net/">CSDN论坛</a> 和 <a href="http://www.baidu.com"><a href="http://www.baidu.com">百度官网</a></a></div> <span class="sensitiveword"><span class="sensitiveword"><span class="sensitiveword">今日头条</span></span></span>
要过滤成如下结果:
<div>欢迎访问<a href="http://bbs.csdn.net/">CSDN论坛</a> 和 <a href="http://www.baidu.com"><a href="http://www.baidu.com">百度官网</a></a></div> 今日头条
preg_replace('/<[^>]+?>/', '', $str)
preg_replace('/(<[^>]+>)/', '', $str);
欢迎访问CSDN论坛 和 百度官网 今日头条
别的元素不去除,就只过滤该类,该class可能会被循环嵌套