提取所有网址Href php

时间:2011-03-10 16:28:37

标签: php dom hyperlink extract href

  

可能重复:
  Finding links matching given string in xpath/domdocument query

您好我有一个包含许多链接的HTML。我现在能够得到链接,只是到处都是,我只会得到一个单词。


$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link){
    echo $link->getAttribute('href');
}

我只列出包含某个单词的链接, 示例:sendspace.com

结果或多或少低于:
http://www.fileserve.com/file/eDpDMm9sad/
http://www.fileserve.com/file/7s83hjh347/

然后我会将这些链接转换为sha1。

转换后保存已应用于包含单词的链接的html sha1。

3 个答案:

答案 0 :(得分:2)

使用phpQuery,您可以遍历DOM并找到包含所需内容的<a>属性的锚点(href):

$dom = phpQuery::newDocument($htmlSource);
$anchors = $dom->find('a[href|=sendspace.com]');

$urls = array();

if($anchors) {
  foreach($anchors as $anchor) {
    $anchor = pq($anchor);
    $urls[] = $anchor->attr('href');
  }
}

答案 1 :(得分:0)

您要找的是regular expressions。看一下PHP的preg_match_all()函数。

答案 2 :(得分:0)

您可以使用正则表达式匹配字符串中的单词(或其他任何内容),如下所示:

foreach ($links as $link) {
    if (preg_match("/example\.com/i", $link->getAttribute('href'))) {
        // do things here!
    }
}