strip_tags删除除允许的标签之外的所有标签。相反呢?如何仅删除并保留所有其他标签?我不想删除标签中的内容!谢谢
如果标签没有属性,您可以简单地使用
$html = str_replace(array('<b>', '</b>', '<i>', '</i>'), '', $html);
否则,我建议使用DOM函数(请不要使用regex)。
对于这类任务,我看不出正则表达式有什么问题。
这将是我的解决方案:
$str = 'test <b class="abc">bold</B> <a href="test.html">testsite</A> <i>italic</i> more stuff <strong>strong</Strong>';
$html_clean = preg_replace('/<'/{0,1}[b|i][^>]*>/i','',$str);
echo $html_clean;
它只替换了b和i标记,包括标记中的可选属性。
要包含更多标签,您可以将它们添加到[b|i]部分。