我正在使用DOM解析器,它通过类缩略图抓取来自网站的链接。这将返回一个链接列表。然后将它们转换为图像状态并显示在页面上。我遇到的问题是我有两个不同的链接返回:
http://i.imgur.com/randomstuffhere 和 http://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 />";
}
}
?>
答案 0 :(得分:2)
您需要使用//
转义http://
中的\/\/
。
但您应该使用strpos
。
if(strpos($hyperlink->getAttribute('href'), 'http://i.imgur.com/') !== FALSE){
echo "This is an i.imgur.com link!";
}