Как да получа атрибута src на img таговете?

Зареждам DOM чрез външен url като такъв:

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

$arrayOfSources = array();

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

По този начин искам да съхраня всички src атрибути на img таговете в масив, но продължавам да получавам грешката Fatal error: Call to undefined method DOMDocument::item()

Какво ми липсва тук? Как да извлека всички src атрибути от img таговете в html?


person Weblurk    schedule 22.06.2011    source източник
comment
Трябва да е $arrayOfSources[] = $image->item[0]->getAttribute("src"); забележете квадратните скоби   -  person Kumar    schedule 22.06.2011
comment
@Kumary Не вярвам, че това е правилно. $image е обект, а не масив.   -  person alex    schedule 22.06.2011
comment
@alex, дори в този случай няма метод с име item() в обекта, AFAIK, обектът, който той използва, е съставен от други обекти и той трябва да премахне image(0)   -  person Kumar    schedule 22.06.2011


Отговори (3)


Пуснете частта ->item(0).


person Álvaro González    schedule 22.06.2011
comment
Това беше най-бързият (работещ) отговор, който някога съм виждал. Благодаря! - person Weblurk; 22.06.2011

Вътре в този цикъл не е необходимо да осъществявате достъп до елемента с item(0).

Итераторът за тази колекция ви позволява просто да направите foreach() върху нея и тя да има косвен достъп до всеки елемент в DOMNodeList.

person alex    schedule 22.06.2011
comment
Правилно! Освен това самото съобщение за грешка казва, че няма метод с име item(), свързан с обекта, което ясно показва да не го използвам, просто бих използвал праисторическия метод на var_dump/print_r за отстраняване на грешки. - person Kumar; 22.06.2011
comment
На втора бележка, имам въпрос тук, щях да използвам simplexml тук, щеше ли да е грешно? - person Kumar; 22.06.2011
comment
@Kumar: Предпочитам да използвам DOMDocument, за да анализирам HTML сам. - person alex; 22.06.2011
comment
Някакво предимство? Завърших малък личен проект с помощта на simplexml и го намерих бързо, но не съм експерт, така че бих искал да разбера защо се предпочита DOMDocument? - person Kumar; 22.06.2011

Опитвам:

$arrayOfSources[] = $image->getAttribute("src");
person Michael Wright    schedule 22.06.2011