Manipulation DOM en PHP : récupération du HTML interne et externe
Dans l'implémentation DOM de PHP, récupérer le HTML interne ou externe d'un nœud DOM est pas simple. Contrairement à d'autres environnements de développement, PHP ne dispose pas de fonctions natives spécialement conçues à cet effet.
Solution
Pour surmonter ce problème, les développeurs ont conçu des méthodes fiables utilisant la traversée du DOM et la manipulation de chaînes. Voici une solution qui extrait avec précision le HTML interne et externe :
function DOMinnerHTML(DOMNode $element) { $innerHTML = ""; $children = $element->childNodes; foreach ($children as $child) { $innerHTML .= $element->ownerDocument->saveHTML($child); } return $innerHTML; } // Usage for outerHTML: // Recursively call DOMinnerHTML with parent as a parameter
Exemple :
$dom= new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->load($html_string); $domTables = $dom->getElementsByTagName("table"); // Iterate over DOMNodeList (Implements Traversable) foreach ($domTables as $table) { echo DOMinnerHTML($table); }
Remarque :
Cette solution exploite la méthode saveHTML() pour la traversée des nœuds et l'extraction HTML. Il parcourt les nœuds enfants de l'élément spécifié, les traitant de manière récursive pour construire le code HTML interne ou externe résultant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!