从DOM结果中筛选出链接地址

时间:2013-12-17 02:10:58

标签: php html dom

我正在使用DOM解析器,它通过类缩略图抓取来自网站的链接。这将返回一个链接列表。然后将它们转换为图像状态并显示在页面上。我遇到的问题是我有两个不同的链接返回:

http://i.imgur.com/randomstuffherehttp://imgur.com/randomstuffhere

我需要过滤不包含i.imgur.com的链接的结果。如果链接是imgur链接但不包含i。在我需要过滤掉它之前不要显示。 到目前为止我有这个,我无法弄清楚我哪里出错...有什么建议吗?

<?php
$html = file_get_contents('http://www.reddit.com/r/funny');
$dom = new DOMDocument();
@$dom->loadHTML($html);

$xpath = new DOMXPath($dom);
$hyperlinks = $xpath->evaluate('//a[@class="thumbnail "]');

foreach($hyperlinks as $hyperlink) {
 if (preg_match("/http://imgur.com/", $hyperlink->getAttribute('href'))){
  }
  else{
       echo "<img style='padding-left:30%' width=\"500\" src=\"" . $hyperlink->getAttribute('href') . "\" alt=\"\" />";
  echo "<br />";
  }
}
?>

1 个答案:

答案 0 :(得分:2)

您需要使用//转义http://中的\/\/

但您应该使用strpos

if(strpos($hyperlink->getAttribute('href'), 'http://i.imgur.com/') !== FALSE){
  echo "This is an i.imgur.com link!";
}