Bonjour à tous,

Depuis quelques jours je n'arrive pas à formaliser une expression régulière permettant de supprimer toutes les balises html d'une chaîne (et leurs contenus) qui possèdent un attribut spécifique.

Ci-dessous un exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$string='<th>col 1</th><th>col 2</th><th id="col3" my_attribute="true">col 3</th>
<tr><td>x1y1</td><td>x1y2</td><td id="x1y3" my_attribute="true">x1y3</td></tr>
<tr><td>x2y1</td><td>x2y2</td><td id="x2y3" my_attribute="true">x2y3</td></tr>
<tr><td>x3y1</td><td>x3y2</td><td id="x3y3" my_attribute="true">x3y3</td></tr>
<tr><td>x4y1</td><td>x4y2</td><td id="x4y3" my_attribute="true">x4y3</td></tr>';

$pattern='#<t[d|h].(my_attribute)^>.*?</t[d|h]>#s';
$result=preg_replace($pattern, '', $string);
Ci-dessous le résultat attendu :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$result='<th>col 1</th><th>col 2</th>
<tr><td>x1y1</td><td>x1y2</td></tr>
<tr><td>x2y1</td><td>x2y2</td></tr>
<tr><td>x3y1</td><td>x3y2</td></tr>
<tr><td>x4y1</td><td>x4y2</td></tr>';
Par avance merci pour votre aide