par

Quelles sont les bonnes méthodes pour analyser et parser du HTML ou XML, et en extraire des informations, avec PHP ?

1 Réponse

+1 vote
par

Pour parser (analyser) du code HTML ou XML, Il est préférable d'utiliser l’une des extensions XML natives, car elles sont fournies avec PHP, et elles sont généralement plus rapides que toutes les bibliothèques tierces.

Extensions XML natives

DOM est capable d’analyser et de modifier du code HTML, correct ou contenant des erreurs, et d’effectuer des requêtes XPath. Il est basé sur libxml, et c'est surement la meilleure solution pour parser de l'HTML ou du XML avec PHP.

Exemple : Extraire la valeur HREF d'une balise A contenu dans une variable PHP $web :

$dom = new DOMDocument;
$dom->loadHTML($web);
foreach ($dom->getElementsByTagName('a') as $node) {
    echo $dom->saveHtml($node), PHP_EOL;
}

XMLReader, comme DOM, est basé sur libxml. Parser avec XMLReader permet une bonne analyse du code HTML, mais XMLReader s'avère moins robuste que DOM lorsqu'il doit faire face à du code contenant des erreurs.

La bibliothèque XML Parser est également basée sur libxml et implémente un analyseur XML de type SAX. C'est un bon choix si vous devez faire face à des problématiques de ressource mémoire.

SimpleXML, à utiliser lorsque vous savez que le code HTML est valide XHTML. Face à du HTML contenant des erreurs SimpleXML aura tendance à mal réagir.

Si vous préférez utiliser une bibliothèque tierce, vous avez l’embarras du choix. L’utilisation de DOM / libxml présente l’avantage d’obtenir de bonnes performances, car vous êtes basé sur une extension native. Cependant, certaines bibliothèques tierces ne suivent pas cette voie.

Bibliothèques tierces pour parser et analyser avec PHP

HtmlPageDom
QueryPath
FluentDOM
Zend-Dom
fDomDocument
SabreXml
Ganon
SimpleHtmlDom
Html5lib

Remarque : Vous pourriez aussi extraire des données HTML, en PHP, avec des expressions régulières, mais il est déconseillé de les utiliser à moins que les informations à traiter et parser soient sécurisées et minimales.

Tendances

Questions liées

1 réponse
posée par anonyme 06-Octobre-2018
1 réponse
1 réponse
1 réponse
posée par anonyme 24-Septembre-2018

Merci pour votre visite sur 1FORMATIK.com

Un petit clic sur la pub est toujours apprécié, c'est elle qui finance le site

Bon surf

...