可能重复:
如何使用 PHP 解析和处理 HTML?
我不知道如何表达这个问题。
基本上我有这个php代码:
$new_html = preg_replace('!<div.*?id="spotlight".*?>.*?</div>!is', '', $html);
我希望它从此更改 html 代码(例如,不是实际的 html):
<div id="container">
<div id="spotlight">
<!-- empty -->
</div>
<div id="content">
<!-- lots of content -->
</div>
</div>
对此:
<div id="container">
<div id="content">
<!-- lots of content -->
</div>
</div>
如您所见,php 代码将成功执行此操作,因为正则表达式正在寻找:
<div{anything}id="spotlight"{anything}>{anything}</div>
然而
如果 div id="spotlight" 包含像这样的子 div:
<div id="container">
<div id="spotlight">
<div></div>
</div>
<div id="content">
<!-- lots of content -->
</div>
</div>
那么正则表达式将匹配子 div 的结束 div 标签!
我该如何防止这种情况?如果打开了另一个 div,我如何告诉正则表达式忽略关闭的 div?
谢谢