从字符串中删除非HTML标记

时间:2019-06-26 13:32:43

标签: php string dom strip-tags

所以我在这里有一个字符串(我写的是随机的,实际的字符串可以是任何东西,可以包含任何/所有HTML标记):

$my_str = "<p>Lorem ipsum</p><i:f>hello</i:f><div>some other text</div><qe></qe>"

我需要删除所有 HTML标记,因此必须删除<i:f><qe>,但其余部分必须保留。

我完全意识到,我可以只使用strip_tags()函数并只填写我需要保留的所有标签(除非有人提供更优雅的解决方案,否则我将这样做),因为填写{使用所有有效的HTML5标签标记{1}}并不是最好的方法。

示例:

$allowed_tags

那么关于更优雅的解决方案有什么想法吗?

谢谢。 蒂姆

1 个答案:

答案 0 :(得分:0)

您可以这样处理

$my_str = "<p>Lorem ipsum</p><i:f>hello</i:f><div>some other text</div><qe></qe>";
echo preg_replace("/(<\s*\/?\s*\b(qe|i:f)\b[^>]*\/?\s*>)/i", "", $my_str)