Я пытаюсь получить мета-теги из веб-сайтов и повторить результат, он работает хорошо до сих пор, но я нашел внешнюю проблему ...Выбор между двумя типами метатегов
Я использую этот код :
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, который я пытаюсь принести есть мета-теги, используя атрибут объявления «свойство» (Ex: <meta property="title">
) все идет хорошо, как код, предполагают, чтобы сделать ... но некоторые URL-адреса использует атрибут «имя» (пример: <meta name="title">
) вместо «свойство» ...
Итак, мне нужно найти решение для извлечения значений из «свойства», а если оно пустое, верните значения из «name» ...
Я пробовал кое-что, но не преуспел до сих пор .. Любой есть идеи?
'str_ireplace ('