【发布时间】:2011-09-27 23:24:45
【问题描述】:
我想提取一些页面内的所有链接,并在一个块中显示它们的链接文本。我试过正则表达式,但它没有得到正确的结果,因为标签没有修复模式,它们有各种属性。我使用 PHP。
我该怎么做?
【问题讨论】:
-
你确实不想为此使用正则表达式。
我想提取一些页面内的所有链接,并在一个块中显示它们的链接文本。我试过正则表达式,但它没有得到正确的结果,因为标签没有修复模式,它们有各种属性。我使用 PHP。
我该怎么做?
【问题讨论】:
喜欢:
$doc = new DOMDocument();
$doc->loadHTML($string);
foreach($doc->getElementsByTagName('a') as $a) {
// do something with $a->textContent
}
【讨论】:
使用 DOM 和 getElementsByTagName() 怎么样?
http://php.net/manual/en/domdocument.getelementsbytagname.php
【讨论】:
您可以尝试使用PHP:DOMDocument::getElementsByTagName 获取指定的标签。这是一个例子:
内页.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');
?>
【讨论】: