====== Remplacer des éléments par d'autres ====== À partir d'un code HTML contenant des éléments ****, remplacer tous les éléments **** par des éléments **
** : // Code HTML d'origine $content = <<< EOT

Paragraphe 1

Ligne de texte 1

Paragraphe 2

Ligne de texte 2

Paragraphe 3

Ligne de texte 3 EOT; // Afficher le contenu HTML d'origine echo '
';
echo htmlentities($content);
echo '
'; // Initialiser l'objet DOMDocument $dom = new \DOMDocument(); $dom->loadHTML($content); $dom->formatOutput = true; // Récupérer les éléments 'span' $spanTags = $dom->getElementsByTagName('span'); // Parcourir la liste d'éléments EN PARTANT DE LA FIN for($i = $spanTags->length; --$i >= 0; ) { $spanTag = $spanTags[$i]; // Créer un nouvel élément 'div' et lui donner le même contenu // que l'élément 'span' $div = $dom->createElement('div', $spanTag->nodeValue); // Depuis l'élément parent de l'élément 'span', remplacer // l'élément 'span' par le nouvel élément 'div' $spanTag->parentNode->replaceChild($div, $spanTag); } // Récupérer l'élément 'body' du document $body = $dom->getElementsByTagName('body')[0]; // Créer la nouvelle version du contenu en exportant l'HTML de // chaque élément enfant du 'body' $newContent = ''; foreach($body->childNodes as $child) { $newContent .= $dom->saveHTML($child); } // Afficher le contenu HTML transformé echo '
';
echo htmlentities($newContent);
echo '
';
===== Résultat ===== ==== AVANT : ====

Paragraphe 1

Ligne de texte 1

Paragraphe 2

Ligne de texte 2

Paragraphe 3

Ligne de texte 3
==== APRÈS : ====

Paragraphe 1

Ligne de texte 1

Paragraphe 2

Ligne de texte 2

Paragraphe 3

Ligne de texte 3