2010-06-01 102 views
0

我想獲取頁面中所有圖像的src。但有些頁面使用絕對路徑,有些則不使用。所以我想知道最好的方法是什麼?獲取頁面中的所有圖像絕對路徑?

現在我正在使用這個。

$imgsrc_regex = '#<\s*img [^\>]*src\s*=\s*(["\'])(.*?)\1#im'; 

preg_match_all($imgsrc_regex, $html, $matches); 

例如網頁中可能具有圖像作爲SRC =「xyz.png」而另一些可能使用 SRC =「b.com/xyz.png」那麼,有沒有辦法自動將網址時必要?

+1

沒有足夠的正則表達式。 – alex 2010-06-01 05:28:26

+1

沒有足夠的解析器。 – Kobi 2010-06-01 05:30:24

回答

3

的最佳方式(IMO)是使用DOMDocumentDOMXPath獲得網址:

$dom=new domDocument; 
$dom->loadHTML($html); 

$xpath = new DOMXPath($dom); 
$result = $xpath->query("//img/@src"); 

Using regex to parse HTML is bad.

還是要弄清你的問題是什麼你真的想要。你只想獲得絕對的圖像網址嗎?如果是這樣,你可以檢查他們是否以http:開頭:

$result = $xpath->query("//img[starts-with(@src, 'http:') or starts-with(@src, 'HTTP:')]/@src");