Re-bonjour, je vous expose mon deuxième gros problème de la journée.
A l'aide de regex, je suis censé enlever dans mon code toutes les tables qui ne sont pas affichées, par exemple:
<table style="display: none;" border="0" cellpadding="0" cellspacing="0" width="300"></table>
Dans ce cas là, cette regex marche très bien :
1 2 3
| if(preg_match('#<table(.*?)display: none;"#',$lc_contents)) {
$lc_contents=preg_replace('#<table(.*?)display: none;"(.*?)</table>#','',$lc_contents);
} |
Le problème se pose quand il y a 2 tables imbriquées, par exemple :
1 2 3
| <table style="display: none;" border="0" cellpadding="0" cellspacing="0" width="300">
< table style="display: block;" /table>
/table> |
Le problème est que ma regex va allée chercher la première fin de table, et ce bloc : va rester tout seul.
Comment faire pour indiquer à ma regex qu'il faut regarder sur la même ligne s'il n'y a pas une autre table qui est ouverte et lui signifier qu'il faut englober la totalité des /table> ?
Mon problème est compliqué a expliqué mais j'espère que vous voyez où je veux en venir.
Toute idée ou toute aide sera la bienvenue ...
Merci d'avance
Partager