Ce n'est pas le plus propre :
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php
$pattern = '#(<div(.*)id="id-boite"(.*)>)(.*)(<\/div>)#U';
$chaine = '<div id="id-boite"><p><div id="zzz" class="eee">blabla et <strong>blabla</strong></div></p></div>';
$remplacement = 'AZERTY';
$chaine = preg_replace($pattern, "$1".$remplacement."$5", $chaine);
$old=null;
while ($old !== $chaine){
$old = $chaine;
$chaine = preg_replace('#(<div[^>]*>.*)</[^>]*></div>#U', "$1".'</div>', $chaine);
$chaine = preg_replace('#</div></div>#U', '</div>', $chaine);
}
echo htmlentities($chaine);
?> |
Mais tu as le resultat que tu désire :
<div id="id-boite">AZERTY</div>
Partager