使用 get_meta_tags() 函数检索具有相同名称的元数据
Retrieve a meta with the same name with get_meta_tags() function
我正在尝试使用 php get_meta_tags() 函数检索网页的 <meta name="generator">
。
担心我的网页包含两个相同的元数据:
<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
而 get_meta_tags()
似乎只想检索最后一个 我想要第一个。
这是我的代码:
$fullURL = 'https://thibautchourre.com/';
$metas = get_meta_tags($fullURL);
$versionwp = $metas['generator']
echo $versionwp
一个想法?
问题是 get_meta_tags
正在返回一个数组,您不能有重复的数组键。
get_meta_tags
函数仅returns名称重复时的最后一个元素。
If two meta tags have the same name, only the last one is returned
您可以使用解析器获取所有 meta
个元素。
样本:
<?php
$html = '<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
';
$doc = new DOMDocument();
$doc->loadHTML($html);
$metas = $doc->getElementsByTagName('meta');
foreach($metas as $meta){
if($meta->getAttribute('name') == 'generator'){
echo $meta->getAttribute('content') . PHP_EOL;
}
}
使用 xpath 的替代方案,(改编自 get meta description tag with xpath)
$html = '<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
';
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//meta[@name="generator"]/@content');
foreach($nodes as $node){
echo $node->textContent . PHP_EOL;
}
我正在尝试使用 php get_meta_tags() 函数检索网页的 <meta name="generator">
。
担心我的网页包含两个相同的元数据:
<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
而 get_meta_tags()
似乎只想检索最后一个 我想要第一个。
这是我的代码:
$fullURL = 'https://thibautchourre.com/';
$metas = get_meta_tags($fullURL);
$versionwp = $metas['generator']
echo $versionwp
一个想法?
问题是 get_meta_tags
正在返回一个数组,您不能有重复的数组键。
get_meta_tags
函数仅returns名称重复时的最后一个元素。
If two meta tags have the same name, only the last one is returned
您可以使用解析器获取所有 meta
个元素。
样本:
<?php
$html = '<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
';
$doc = new DOMDocument();
$doc->loadHTML($html);
$metas = $doc->getElementsByTagName('meta');
foreach($metas as $meta){
if($meta->getAttribute('name') == 'generator'){
echo $meta->getAttribute('content') . PHP_EOL;
}
}
使用 xpath 的替代方案,(改编自 get meta description tag with xpath)
$html = '<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
';
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//meta[@name="generator"]/@content');
foreach($nodes as $node){
echo $node->textContent . PHP_EOL;
}