Как получить только первый результат от 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];
Чтобы получить первый элемент в массиве.