preg_replace() - 删除html标记中包含的字符串

时间:2011-07-04 14:56:53

标签: php string

我想做以下事情:

我在数据库中有一个字符串,在插入时会以html标记存储,所以例如,我可能有以下字符串:

     <h2>Hello World</h2>
     <p>Cras mattis justo vitae diam sagittis ut porta eros aliquam. 
        Aenean vel nisi et nisl adipiscing blandit. 
        Donec tempor dictum risus a feugiat. 
        Nunc ac purus lectus. Morbi in suscipit ipsum. 
        Ut eu odio eu massa sollicitudin interdum. 
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
        Maecenas fermentum hendrerit imperdiet.</p>

这是我在数据库中可能包含的字符串,我想丢弃它的<h2>部分。

现在,据我所知,在这里做preg_replace()可以完成这项工作,但我需要查找哪种字符串模式?

非常感谢。

3 个答案:

答案 0 :(得分:1)

请参阅链接网站上的Remove HTML Tags部分。 E.g。

@<h2[^>]*?>.*?</h2>@siu

答案 1 :(得分:1)

要真正回答您的问题,替换方法RegEx将是:

/<h2>(.+?)<\/h2>/

但是,正如评论所指出的,这不是最好的方法! :)

答案 2 :(得分:1)

很好的 Michael Wright

使用 strip_tags()函数解决此问题的另一种方法。

  $patern = '<p>';
  $str = '<h2>Hello World</h2><p>Cras mattis justo vitae diam .</p>';
  strip_tags($str,$patern);

此代码生成以下输出

 'Hello World<p>Cras mattis justo vitae diam .</p>'

此处$ pattrn包含仍保留在您数据中的标记列表。 strip_tags()删除除$ patern之外的所有标记。

reference from php manual