Maison >développement back-end >tutoriel php >Comment enregistrer le HTML de DOMDocument sans balises wrapper inutiles ?
Enregistrement du HTML à partir d'un DOMDocument sans HTML Wrapper
La tâche à accomplir est d'extraire le contenu HTML d'un objet DOMDocument sans qu'il soit enveloppé dans des éléments inutiles Balises HTML. Le problème est que lors de l'utilisation de saveXML, il ajoute des wrappers de balises XML, HTML, body et p.
À mesure que PHP est passé à la version 5.4 et Libxml à la version 2.6, une solution a émergé. La fonction loadHTML accepte désormais un paramètre $option qui contrôle la façon dont le contenu est analysé.
Pour résoudre ce problème, nous pouvons charger le HTML avec les options suivantes :
$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
Ces options sont désactivées l'ajout automatique d'éléments html/body implicites et empêche l'ajout d'un doctype par défaut. Cette configuration garantit que lorsque saveHTML est appelé, la sortie n'inclura pas les wrappers problématiques.
LIBXML_HTML_NOIMPLIED: Turns off the automatic adding of implied html/body elements. LIBXML_HTML_NODEFDTD: Prevents a default doctype from being added when one is not found.
Pour une documentation complète sur les paramètres Libxml, reportez-vous à : [Documentation des paramètres Libxml](https://www.php .net/manual/en/libxml.constants.php#libxmlconstants.constants.html)
Il est à noter que même si le La documentation loadHTML mentionne que Libxml 2.6 est requis, LIBXML_HTML_NODEFDTD n'est disponible que dans Libxml 2.7.8 et LIBXML_HTML_NOIMPLIED est disponible dans Libxml 2.7.7.
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!