2013-02-08 3 views
0

HTML:PHP - supprimer divs et contenu dans

<!--a lot of HTML before--> 
<div class="quoteheader"> 
    <div class="topslice_quote"><a href="htsomelink">Some text</a></div> 
</div> 
<blockquote class="bbc_standard_quote">Some text<br /> 
</blockquote> 
<div class="quotefooter"> 
    <div class="botslice_quote"></div> 
</div> 
<br /> 
<!--a lot of HTML after--> 

QUE JE DOIS: tout enlever entre div.quoteheader et premier <br/> après, ce résultat devrait ressembler à:

<!--a lot of HTML before--> 
<!--a lot of HTML after--> 

I ESSAI:

$message = preg_replace('/<div\sclass=\"quoteheader\">[^<]+<\/div>/i', '', $string) 
+0

Ce serait tout entre ' div.quoteheader' et le * second * '
' –

Répondre

0

Vous seriez bien mieux servi utilisé un analyseur XML/HTML/DOM que regex. SimpleXML est assez simple.

Vous devez simplement charger le code HTML avec SimpleXML ou un autre analyseur HTML/XML, puis utiliser xpath pour trouver les nœuds et/ou les commentaires que vous recherchez, puis les supprimer.

+0

substr & strpos et strip_tags seraient assez –

0

Une alternative ... si vous pouvez délimiter le code avec des commentaires, comme ceci:

<!--code--> 
<div> .. </div> 
<!--/code--> 

vous pouvez supprimer tout entre que:

$newstr = preg_replace('/<!--code-->.*?<!--\/code-->/is', '', $htmlstring); 
0
preg_replace('/(\<div\ class="quoteheader"\>)(.+)(<br \/>)/si', '', $string)