使用preg_replace删除html标记

时间:2013-11-26 04:34:33

标签: php html preg-replace

以下是我页面中html的一部分。

<div id="video-ad">
          <div id="wpn_ad_square">

          </div>
        </div>

我想用preg_replace语句完全删除wpn_ad_square div。请注意页面上可能有其他wpn_ad_square div,我想删除所有这些

以下是我的尝试

$html = preg_replace('#\<div\sid="wpn_ad.*?\<\/div\>#s', '', $html, 1);

$html = preg_replace('#<div id="wpn_ad.*?</div>#s', '', $html, 1);

$html = preg_replace('#<div id="wpn_ad.*?<\/div>#s', '', $html, 1);

可悲的是,他们都没有为我工作....请提供一个preg_replace解决方案,以便我可以知道我的错误。

1 个答案:

答案 0 :(得分:3)

使用非贪婪

删除代码非常简单
$html = '
<div id="video-ad">
   <div id="wpn_ad_square">my example content</div>
</div>
';

echo preg_replace('/\<div id=\"wpn_ad_square\"\>(.*?)\<\/div\>/', '', $html);