Maison >développement back-end >tutoriel php >Comment puis-je enregistrer du HTML à partir de DOMDocument sans les balises Wrapper ?

Comment puis-je enregistrer du HTML à partir de DOMDocument sans les balises Wrapper ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-15 05:34:13639parcourir

How Can I Save HTML from DOMDocument Without the Wrapper Tags?

Enregistrement du code HTML de DOMDocument sans HTML Wrapper

Cette question répond à un problème courant lorsque vous travaillez avec DOMDocument : l'extraction de contenu HTML sans les balises HTML, corps et paragraphe englobantes. Le problème survient lorsque saveXML() ajoute ces wrappers à la sortie. Bien que le correctif suggéré utilisant saveXML() sur le premier élément de paragraphe ne fonctionne que pour le contenu sans éléments de niveau bloc, cet article explore une solution complète.

La clé pour résoudre ce problème réside dans l'introduction de l'option $. paramètre dans loadHTML() dans PHP 5.4 et Libxml 2.6. En utilisant les options suivantes :

$html->loadHTML($content, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

nous pouvons demander à Libxml de ne pas ajouter automatiquement d'éléments HTML et body implicites ou un doctype par défaut. Par conséquent, saveHTML() affichera le contenu sans ces wrappers.

LIBXML_HTML_NOIMPLIED désactive l'ajout automatique d'éléments HTML/body implicites, tandis que LIBXML_HTML_NODEFDTD empêche l'ajout d'un doctype par défaut s'il n'en trouve pas dans l'entrée.

En incorporant ces options, nous pouvons extraire efficacement le contenu HTML souhaité sans wrappers indésirables, garantissant ainsi une image plus précise. représentation du contenu du DOMDocument.

Il est important de noter que loadHTML() nécessite Libxml 2.6, alors que LIBXML_HTML_NODEFDTD n'est disponible que dans Libxml 2.7.8 et LIBXML_HTML_NOIMPLIED est disponible dans Libxml 2.7.7. Pour une compréhension complète des paramètres Libxml, reportez-vous à la documentation officielle.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn