php正则表达式删除html标签,但保持

时间:2012-01-18 11:49:58

标签: php regex

  

可能重复:
  Php: remove all tags, but “a href” in a text

有没有办法从字符串中使用正则表达式删除html标签,但只保留标签和相关样式?

例如:

<div>
    <p>Blah blah blah <a href="xyz.com" style="blah blah">blah blah</a> blah blah</p>   </div>

会给你:

Blah blah blah <a href="xyz.com" style="blah blah">blah blah</a> blah blah

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

你不需要正则表达式,你可以使用strip_tags和第二个参数

答案 1 :(得分:1)

最好的办法是使用strip_tags函数和第二个参数:

$new_string = strip_tags($input_string, "<a>");

答案 2 :(得分:0)

您必须将preg_replace_callback与以下正则表达式一起使用:

$regex = "/<(\S+)[^>\\/]*(?:\\/>|>(.*)</\\1>)/msi";

这将选择所有标签。现在,您必须检入回调,如果组1的内容不是aA,您可以返回组2的内容(内部)标签)否则返回组0(无修改)。