#php #domdocument #getelementsbytagname
#php #domdocument #getelementsbytagname
Вопрос:
Наш скрипт использует dom для анализа всех тегов a из документа, затем перебирает дочерние узлы и извлекает информацию, которая работает нормально. вот как начинается код
@$dom->loadHTML($str);
$documentLinks = $dom->getElementsByTagName("a");
Часть цикла
$this->count]['href'] = strip_tags($documentLink->getAttribute('href'));
Теперь мне нужно получить тег заголовка с каждой просматриваемой страницы, чтобы я мог сделать
$documentTitle = $dom->getElementsByTagName("title");
$documentLinks = $dom->getElementsByTagName("a");
Затем добавьте это в цикл / массив, чтобы получить заголовок документа, но он возвращается с «[title] => DOMNodeList Object ()» Как я могу включить тег title в цикл, который проходит через теги / дочерние узлы?
$this->count]['title'] = $documentTitle;
Ответ №1:
getElementsByTagName возвращает объект DOMNodeList. Вам нужно текстовое содержимое первого (должно быть только одно название страницы) элемента в списке.
Попробуйте это:
$documentTitle = $dom->getElementsByTagName('title')->item(0)->textContent;