Массив пуст при очистке og: meta

Я разместил URL-адрес в фиде, который создал на моем домашнем сервере, чтобы получить все метаданные этого URL-адреса с веб-сайта.

Я просмотрел веб-сайт uk.yahoo.com. Я разместил эту самую ссылку, зная, что у нее есть og: meta для этой страницы под этим самым URL-адресом.

<meta property = "og:image" content = "https://s.yimg.com/dh/ap/default/130909/y_200_a.png">

<meta name = "description" content = "News, email....">

<meta property = "og:title" content = "Yahoo">

но когда я смотрю на свою консоль, он говорит, что массив пуст

libxml_use_internal_errors(true); // 
$doc = new DomDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$query = '//*/meta[starts-with(@property, \'og:\')]';
$metas = $xpath->query($query);
$rmetas = array();
foreach($metas as $meta) {

$property = $meta->getAttribute('property');
$content = $meta->getAttribute('content');
$rmetas[$property] = $content;
}
var_dump($rmetas);

Затем я размещаю ссылку на news.yahoo.com, и она становится идеальной для og: meta.

Шаг 1: не доверяйте себе знать, что делает код, проверять, что делает код. Распечатайте этот $doc: что в нем? Есть ли у него даже метатеги HTML5, или он их выбросил, потому что они не следовали древним правилам HTML4.1 для самозакрывающихся элементов? Если да, то где они? Ваш xpath вообще работает для этого вложения?

Mike 'Pomax' Kamermans 26.07.2018 06:23

@ Mike'Pomax'Kamermans при печати документа $ doc на моей консоли вообще не показывает: content.

David Draw 26.07.2018 06:31

Я не понимаю, почему на одной странице я могу получить данные, а на другой - не на том же сайте.

David Draw 26.07.2018 06:33

тогда вы должны исследовать это: сохранить HTML для обеих страниц и написать пятистрочный сценарий, который загружает оба файла, анализирует оба файла и печатает набор тегов. Очистите теги <body> в обоих файлах, чтобы вы просто работали с головой, а затем посмотрите, чем они отличаются.

Mike 'Pomax' Kamermans 26.07.2018 17:31

@mike, честно говоря, я вообще не слежу. Я не совсем понимаю, что вы имеете в виду! Я думал, что файлы уже разобраны? Я вообще не знаю, что делаю. Я не могу найти в сети никого, у кого была бы такая же проблема, и каких-либо примеров, чтобы понять мою проблему.

David Draw 27.07.2018 01:03

Я имею в виду, если вы видите два файла HTML, один из которых «работает», а другой «не работает», исследуйте это. Узнайте, в чем их разница, чтобы лучше понять. И вы анализируете теги <meta>, поэтому возьмите эти две HTML-страницы, сохраните их в файлах .html с помощью браузера, curl, wget или чего-то еще, а затем удалите все в теге <body>, потому что все это не имеет отношения к вашей проблеме. Это начало формирования минимальный воспроизводимый пример, который представляет собой важный процесс отладки, который необходимо выполнить, прежде чем вы начнете задавать вопросы: часто вы может находите ответ самостоятельно, если потратите это время.

Mike 'Pomax' Kamermans 27.07.2018 02:32

@ Mike'Pomax'Kamermans Я заставил его работать, изменив несколько строк в моем локоне.

David Draw 28.07.2018 11:09

Какая часть? Вы действительно решили проблему со своим вопросом или просто заставили curl захватывать html-страницы? (потому что это просто curl + URL-адрес, а затем вы открываете файл, который он сохраняет в текстовом редакторе, и выбрасываете большую его часть. Не пытайтесь заставить curl сделать это)

Mike 'Pomax' Kamermans 28.07.2018 17:59

Я удалил заголовок [‘’] и добавил реферера, если я правильно помню. Я работаю по ночам, но я опубликую свой ответ на проблему и обновлю свой вопрос, так как это может помочь другим, я просто ищу мета-заголовок и ключевые слова на страницах через завиток по любому заданному URL-адресу.

David Draw 29.07.2018 02:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
9
44
0

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