2011-06-22 19 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

に気付きます@クマリ私はそれが正しいとは思わない。 '$ image'はオブジェクトであり、配列ではありません。 – Phil

+0

ではありません@Kumar'角括弧 – alex

答えて

3

->item(0)部分を削除してください。


+0

私が今までに見た中で最も早く(現実的に)反応しました。ありがとう! – Weblurk

1

このループの内部では、item(0)で要素にアクセスする必要はありません。

そのコレクションのイテレータは、foreach()を実行し、DOMNodeListの各要素に暗黙的にアクセスさせることができます。

+0

正解!さらに、エラーメッセージ自体は 'item()'という名前のメソッドがオブジェクトに関連付けられていないことを示し、それを使用しないことを明確にしています。単に 'var_dump/print_r'の先史方法を使ってデバッグします。 – Kumar

+0

2番目の注記で私はここに質問があります、私はここで 'simplexml'を使っていたでしょう、それは間違っていましたか? – Kumar

+0

@Kumar:私は自分自身でHTMLを解析するためにDOMDocumentを使うのが好きです。 – alex

1

試してみてください。

$arrayOfSources[] = $image->getAttribute("src"); 
関連する問題