仅删除<;b>;并且<;i>;标签


Remove only <b> and <i> tags with PHP

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]部分。