PHP - 字符串 - 删除具有特定类的HTML标记,包括其内容

Ale*_*lex 9 html php string class

我有一个像这样的字符串:

<div class="container">
  <h3 class="hdr"> Text </h3>
  <div class="main">
    text
    <h3> text... </h3>
    ....

  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何使用尽可能少的代码删除带有.hdr类的H3标记?

Dan*_*erg 20

使用尽可能少的代码?最短的代码不一定是最好的.但是,如果您的HTML h3标记始终如此,那么这应该足够了:

$html = preg_replace('#<h3 class="hdr">(.*?)</h3>#', '', $html);
Run Code Online (Sandbox Code Playgroud)

一般来说,使用正则表达式解析HTML并不是一个特别好的主意.

  • @Alex 因为 HTML 不规则。如果您想使用 HTML,请使用 DOM。链接副本中有一个示例。 (2认同)
  • 重要提示:仅当开始和结束标签在同一行上时才有效!两者之间的换行符可以通过以下方式使用:$ html = preg_replace('#&lt;h3 class =“ hdr”&gt;(。*?)&lt;/ h3&gt; #si','',$ html);`s =包含换行符, i =不区分大小写 (2认同)