如何使用 DOMDocument 和 DOMXPath 回显元标题和元标签

How to echo meta title and meta tags using DOMDocument and DOMXPath

使用此功能:

function get_tags($adres)
{
    $dom = new domDocument();
    libxml_use_internal_errors(true);
    if (!$dom->loadHTML($adres)) {
        echo "Error";
    } else echo "Load ok";
    $html = new DOMXPath($dom);
   $html->query('//title');
}

我尝试使用 XPath 获取和回显标题和关键字、描述、机器人元标记,但不知道如何以及必须如何查询元标记。

谢谢

要检索标题,我使用:

$titles = $xpath->query('/html/head/title');
foreach ($titles as $title) {
    $return['title'][] = $title->nodeValue;
}

因为 DOM 可能有多个 <title /> 标签,但不建议这样做。

然后我解析所有 <meta /> 标签,例如:

$metas = $xpath->query('/html/head/meta');
foreach ($metas as $meta) {
    $name = strtolower($meta->getAttribute('name'));
    if ($name == 'title' && (!isset($return['title']) || $return['title'] == '')) // There is such a thing as <meta name="title" \>
        $return['title'][] = $meta->getAttribute('content');
    if ($name == 'keywords')
        $return['metakw'][] = $meta->getAttribute('content');
    if ($name == 'description')
        $return['metadesc'][] = $meta->getAttribute('content');
    if ($name == 'robots')
        $return['robots'][] = $meta->getAttribute('content');
}

但我想可以使用 :

$metas_title = $xpath->query('/html/head/meta[@name="title"]');
$metas_desc = $xpath->query('/html/head/meta[@name="description"]');
$metas_kw = $xpath->query('/html/head/meta[@name="keywords"]');
$metas_robots = $xpath->query('/html/head/meta[@name="robots"]');