Maison > développement back-end > tutoriel php > Analyse Regex ou DOM : quel est le meilleur moyen d'extraire les attributs « href » du HTML ?

Analyse Regex ou DOM : quel est le meilleur moyen d'extraire les attributs « href » du HTML ?

Linda Hamilton
Libérer: 2024-12-22 18:39:10
original
360 Les gens l'ont consulté

Regex vs. DOM Parsing: Which is Best for Extracting `href` Attributes from HTML?

Récupérer l'attribut href d'un élément A : analyse Regex vs DOM

Essayer d'extraire les informations de lien d'une page HTML nécessite une manipulation minutieuse de l'attribut href. Bien que les expressions régulières offrent une approche basique, elles peuvent rencontrer des difficultés lorsque l'attribut href n'est pas placé en premier dans la balise a.

Une alternative fiable consiste à utiliser l'analyse du modèle objet de document (DOM). Voici comment récupérer efficacement les informations d'attribut href à l'aide de DOM :

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
    echo $dom->saveHtml($node), PHP_EOL;
}
Copier après la connexion

Ce code recherche et affiche le "outerHTML" de tous les éléments A dans la chaîne $html.

De plus, DOM fournit le capacités suivantes :

  • Obtention de la valeur du texte : $node->nodeValue
  • Vérification de l'existence de l'attribut href : $node->hasAttribute( 'href' )
  • Obtention de l'attribut href : $node->getAttribute( 'href' )
  • Modification de l'attribut href : $node->setAttribute('href', 'something else')
  • Suppression de l'attribut href : $node->removeAttribute('href')
  • Requête de l'attribut href directement avec XPath :
$nodes = $xpath->query('//a/@href');
foreach ($nodes as $href) {
    echo $href->nodeValue; // echo current attribute value
}
Copier après la connexion

DOM fournit une solution complète pour analyser le HTML et extraire efficacement les informations sur les attributs href. Considérez cette approche pour des résultats robustes et fiables. Reportez-vous également aux ressources fournies pour une exploration plus approfondie.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal