我正在尝试从网站获取元标记并回显结果,到目前为止它运行良好,但我发现了一个外部问题......
我正在使用这段代码:
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 具有使用属性“属性”(例如:)的元标记<meta property="title">
时,一切都很好,因为代码应该这样做......但是某些 URL 使用属性“名称”(例如:<meta name="title">
) 而不是“财产”...
所以,我需要找到一个解决方案来从'property'中提取值,如果它是空的,则从'name'中返回值......
我尝试了一些事情,但到目前为止还没有成功..有人有想法吗?