2014-06-09 49 views
0

我正在收集網頁上的所有圖像。但是,因爲可能有一些圖標.png也被視爲圖像。在頁面上獲取最相關的圖像

這對我來說可能只顯示真實圖像,而不是頁面上的圖標或圖標?

這裏是我的簡單的腳本

function get_logo($html,$url) 
{ 
    $url = rtrim($url, '/'); 
    if (strpos($url,'wikipedia') !== false) 
     return "http://upload.wikimedia.org/wikipedia/commons/5/53/Wikipedia-logo-en-big.png"; 
    else if(preg_match_all('/\bhttps?:\/\/\S+(?:png|jpg)\b/', $html, $matches)) 
    { 
     return $matches; 
    } 
    else 
    {     
     preg_match_all("/<img src=\"(.*?)\"/", $html, $matches); 
     return $url.''.$matches[1][0]; 
    } 
} 

結果之一:

array (size=1) 
    0 => 
    array (size=16) 
     0 => string 'http://cdn.sstatic.net/stackoverflow/img/[email protected]' (length=63) 
     1 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     2 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     3 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     4 => string 'http://i.stack.imgur.com/uE37r.png' (length=34) 
     5 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     6 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     7 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     8 => string 'http://i.stack.imgur.com/dmHl0.png' (length=34) 
     9 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     10 => string 'http://i.stack.imgur.com/dmHl0.png' (length=34) 
     11 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
     12 => string 'http://i.stack.imgur.com/uE37r.png' (length=34) 
     13 => string 'http://i.stack.imgur.com/NG6TX.png' (length=34) 
     14 => string 'http://i.stack.imgur.com/BfCOt.png' (length=34) 
     15 => string 'http://i.stack.imgur.com/tKsDb.png' (length=34) 
+0

您對「真實」圖像與圖標的定義究竟是什麼? –

+0

圖像位置也很重要,如果它位於頂部 - 可能是徽標,如果是底部 - 某些隨機圖像,則不需要。另外嘗試忽略頁眉,頁腳,側邊欄,廣告元素。並找到有很多文字的主要區塊,並嘗試拍攝第一張圖像 - 這是您想要的圖像。 – ViliusL

+0

@PatrickQ:真實圖像是作爲內容的一部分出現在頁面上的一般圖像。圖標屬於favicon,視頻圖標(如http://i.stack.imgur.com/NG6TX.png,http://i.stack.imgur.com/tKsDb.png),圖片評分等。我給出了樣本這樣的圖像的列表也 – user123

回答

1

你可以getimagesize(),並宣佈2個極限,一個寬度和一個高度。這可能是一種確定圖像是圖標(例如,64 x 64像素)還是更大的「真實」圖像的方式。

+0

對這個問題的接受答案是_not_ use'getimagesize()' –

+1

我的答案只是一個想法和建議...... – RazvanZ

相關問題