Ich versuche, die abzurufen <meta name="generator">
einer Webseite mit der php get_meta_tags() Funktion.
Sorge ist, dass meine Webseite ZWEI gleiche Metadaten enthält:
<meta name="generator" content="WordPress 5.9.3">
<meta name="generator" content="Site Kit by Google 1.73.0">
Und get_meta_tags()
scheint nur das letzte wann abrufen zu wollen Ich will das erste.
Hier ist mein Code:
$fullURL = 'https://thibautchourre.com/';
$metas = get_meta_tags($fullURL);
$versionwp = $metas['generator']
echo $versionwp
Eine Idee ?
Das get_meta_tags
Die Funktion gibt nur das letzte Element zurück, wenn der Name dupliziert wird.
Wenn zwei Meta-Tags denselben Namen haben, wird nur das letzte zurückgegeben
Sie könnten einen Parser verwenden, um alle zu erhalten meta
Elemente.
Probe:
<?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;
}
}
https://3v4l.org/jDeNo
Alternative mit xpath, (adaption from 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;
}
Das Problem ist das get_meta_tags
gibt ein Array zurück und Sie können keine doppelten Array-Schlüssel haben.