2013-12-17 25 views
0

我正在使用通過類縮略圖從網站抓取鏈接的DOM解析器。這會返回一個鏈接列表。然後他們轉換爲圖像狀態並顯示在頁面上。我遇到的問題是我有越來越返回2個不同的環節:從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 />"; 
    } 
} 
?> 
+0

'preg_match'對於這個任務來說是完全矯枉過正的。使用'strpos'而不是 – Phil

+1

「如果鏈接是imgur鏈接,但不包含我之前我需要過濾掉不顯示」 - 你需要過濾「imgur.com」鏈接沒有我或不你需要這樣做? – user4035

+0

我需要過濾沒有我的鏈接。開始。 –

回答

2

你一定要逃逸http:////\/\/

但是,您應該使用strpos

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

這個工程!非常感謝!很抱歉,以前的評論關於它不起作用。我沒有檢查編輯...愚蠢的我! –

+1

請注意,如果您想避免轉義一堆正斜槓,您可以使用不同的正則表達式分隔符('@'是一種流行的選擇) – Phil

+0

是的,對不起。參數順序總是讓我用PHP。 –