Maison >développement back-end >tutoriel php >Comment puis-je extraire de manière fiable les attributs href d'un élément A en HTML ?
Extraire les attributs href d'un élément
Pour récupérer les liens sur une page Web, une approche courante consiste à utiliser des expressions régulières. Cependant, des scénarios spécifiques peuvent poser des défis, par exemple lorsque l'attribut href n'est pas positionné en premier dans la balise A.
Approche d'expression régulière
Votre regex initiale, ciblant le attribut href dans n'importe quelle position dans une balise A, j'ai rencontré des difficultés dans des cas comme "quoi ?".
Solution basée sur DOM
Compte tenu des limites des expressions régulières pour une analyse HTML fiable, une solution plus robuste est le DOMDocument classe en PHP. Voici un exemple :
$dom = new DOMDocument; $dom->loadHTML($html); foreach ($dom->getElementsByTagName('a') as $node) { echo $dom->saveHtml($node), PHP_EOL; }
Ce code charge le contenu HTML dans un objet DOMDocument puis récupère tous les éléments A à l'aide de la méthode getElementsByTagName.
Manipulation DOM
A l'aide du DOM, vous pouvez effectuer diverses opérations sur la balise A elements :
XPath pour l'attribut Extraction :
XPath fournit une autre option pour l'extraction d'attributs. Voici un exemple :
$xpath = new DOMXPath($dom); $nodes = $xpath->query('//a/@href'); foreach($nodes as $href) { echo $href->nodeValue; }
Ressources supplémentaires :
Cela vaut la peine de le noter https://www.php.cn/link/274da997412973c08cf7e78724153f55, votre question est peut-être un double et la réponse peut probablement être trouvée dans les discussions existantes.
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!