2013-11-26 98 views
-3

這是我的網頁中的一些HTML的一部分。使用preg_replace刪除html標記

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

      </div> 
     </div> 

我想用的preg_replace statement.Take音符完全刪除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解決方案,以便我可以知道我的錯在哪裏。

+2

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml刪除-self-contained-tags/1732454#1732454 – Phil

+4

http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php/3577662#3577662 –

+0

我的目標是是要了解爲什麼我的preg_replace不工作。我知道Dom是一個更好的選擇,但我想知道我的代碼有什麼問題 – user2650277

回答

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);