Rufen Sie ein Meta mit demselben Namen mit der Funktion get_meta_tags() ab

Lesezeit: 1 Minute

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 ?

Benutzer-Avatar
Benutzer3783243

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.

1016500cookie-checkRufen Sie ein Meta mit demselben Namen mit der Funktion get_meta_tags() ab

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy