从 A 元素中提取 href 属性
寻求检索网页上的链接,一种常见的方法是通过正则表达式。但是,特定场景可能会带来挑战,例如当 href 属性未位于 A 标记中的第一位时。
正则表达式方法
您的初始正则表达式,针对href 属性位于 A 标记内的任何位置,遇到类似情况的困难“什么?”。
基于 DOM 的解决方案
考虑到正则表达式对于可靠 HTML 解析的限制,更强大的解决方案是 DOMDocument PHP 中的类。下面是一个示例:
$dom = new DOMDocument; $dom->loadHTML($html); foreach ($dom->getElementsByTagName('a') as $node) { echo $dom->saveHtml($node), PHP_EOL; }
此代码将 HTML 内容加载到 DOMDocument 对象中,然后使用 getElementsByTagName 方法检索所有 A 元素。
DOM 操作
使用DOM,可以对A标签进行各种操作elements:
属性的 XPath提取:
XPath 为属性提取提供了另一种选项。这是一个示例:
$xpath = new DOMXPath($dom); $nodes = $xpath->query('//a/@href'); foreach($nodes as $href) { echo $href->nodeValue; }
其他资源:
值得注意的是https://www.php.cn/link/274da997412973c08cf7e78724153f55 您的问题可能是重复的,答案很可能可以在现有讨论中找到。
以上是如何可靠地从 HTML 中的 A 元素中提取 href 属性?的详细内容。更多信息请关注PHP中文网其他相关文章!