Как получить только первый результат от getElementsByTagName?

Привет, я использую код, чтобы получить адрес всех изображений с адреса URL. Я хочу спросить, как я могу получить только первый результат, а не все совпадения?

Вот код, который я использую:

<?php


$url="http://grabo.bg/relaks-v-pamporovo-0gk5b";

$html = file_get_contents($url);

$doc = new DOMDocument();
@$doc->loadHTML($html);

$tags = $doc->getElementsByTagName('img');

foreach ($tags as $tag) {
   echo $tag->getAttribute('src');
}

?>

Поэтому, пожалуйста, скажите мне, как я могу получить только один результат - первый!

Заранее спасибо.

3 ответа

$tags это DOMNodeList объект, созданный DOMDocument "s getElementsByTagName метод. Таким образом, вы можете получить доступ к первому элементу, возвращенному с DOMNodelist::item ( int $index ),

Для вашего кода сделайте: $tags->item(0);

Будьте осторожны, некоторые браузеры решили вернуть HTMLCollection, что нормально, так как это расширенный набор NodeList.
См. Различие между HTMLCollection, NodeLists и массивами объектов

Использование:

$tags = $doc->getElementsByTagName('img')[0];

Чтобы получить первый элемент в массиве.

Другие вопросы по тегам