Я пытаюсь получить метатеги с веб-сайтов и повторить результат, пока он работает хорошо, но я обнаружил внешнюю проблему ...
Я использую этот код:
static private function _parse($HTML) {
$old_libxml_error = libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML($HTML);
libxml_use_internal_errors($old_libxml_error);
$tags = $doc->getElementsByTagName('meta');
if (!$tags || $tags->length === 0) {
return false;
}
$page = new self();
foreach ($tags AS $tag) {
if ($tag->hasAttribute('property') &&
strpos($tag->getAttribute('property'), 'og:') === 0) {
$key = strtr(substr($tag->getAttribute('property'), 3), '-', '_');
$page->_values[$key] = $tag->getAttribute('content');
}
}
if (empty($page->_values)) { return false; }
return $page;
}
Когда URL-адрес, который я пытаюсь получить, содержит метатеги с использованием атрибута attibute (например, <meta property="title">
), все идет хорошо, как и предполагается в коде ... но некоторые URL-адреса используют атрибут «имя» (например: <meta name="title">
) вместо «свойство» ...
Итак, мне нужно найти решение для извлечения значений из 'свойства' и, если оно пустое, вернуть значения из 'имя' ...
Я пробовал кое-что, но пока не получилось .. У кого-нибудь есть идеи?