我想提取某些页面中的所有链接及其链接文本以显示在块中。我已经尝试了正则表达式,但它没有得到正确的结果,因为标签没有修复模式,它们有各种属性。我使用PHP。
我该怎么做?
答案 0 :(得分:8)
喜欢:
$doc = new DOMDocument();
$doc->loadHTML($string);
foreach($doc->getElementsByTagName('a') as $a) {
// do something with $a->textContent
}
答案 1 :(得分:2)
您可以尝试使用PHP:DOMDocument::getElementsByTagName获取指定的代码。这是一个例子:
在page.html内
<a href="#">link1</a>
<a href="#">link2</a>
<a href="#">link3</a>
这是你的PHP代码:
<?php
$src = new DOMDocument('1.0', 'utf-8');
$src->formatOutput = true;
$src->preserveWhiteSpace = false;
$src->load('page.html');
$links = $src->getElementsByTagName('a');
?>
答案 2 :(得分:1)
如何使用DOM和getElementsByTagName()?
http://php.net/manual/en/domdocument.getelementsbytagname.php