2011-06-22 146 views
3

我通過外部URL作爲這種加載DOM:如何獲得img標籤的src屬性?

$dom = new DOMDocument; 
$dom->loadHTMLFile("external_url.html"); 

$arrayOfSources = array(); 

foreach($dom->getElementsByTagName("img") as $image) 
    $arrayOfSources[] = $image->item(0)->getAttribute("src"); 

這樣,我想存儲陣列中的img標籤的所有SRC屬性,但我不斷收到錯誤Fatal error: Call to undefined method DOMDocument::item()

什麼我在這裏想念嗎?我如何從HTML中的img標籤中提取所有src屬性?

+0

它應該是'$ arrayOfSources [] = $圖像 - >項目[0] - >的getAttribute( 「SRC」);'注意括號 – Kumar

+1

@Kumar這是不正確 – Phil

+0

@庫瑪麗我不相信這是正確的。 '$ image'是一個對象,而不是一個數組。 – alex

回答

3

刪除->item(0)部分。


+0

是我見過的最快的(工作)反應。謝謝! – Weblurk

1

在該循環中,您不需要使用item(0)訪問該元素。

該集合的迭代器允許您僅對其執行foreach()並讓它隱式地訪問DOMNodeList中的每個元素。

+0

正確!此外,錯誤消息本身告訴沒有與該對象關聯的名爲'item()'的方法,使其清除不使用它,我會簡單地使用'var_dump/print_r'的史前方法來調試它。 – Kumar

+0

在第二個註釋中,我在這裏有一個問題,我會在這裏使用'simplexml',那會是錯誤的嗎? – Kumar

+0

@Kumar:我更喜歡使用DOMDocument來自己解析HTML。 – alex

1

嘗試:

$arrayOfSources[] = $image->getAttribute("src");