Die grundlegende Syntax der Funktion get_meta_tags lautet wie folgt:
array get_meta_tags ( string $filename )
Diese Funktion nimmt einen Dateipfad (oder eine URL) ein und analysiert alle darin enthaltenen Dateien Etikett. Das zurückgegebene Ergebnis ist ein assoziatives Array, in dem der Schlüssel des Arrays der Name oder die Eigenschaft des Meta -Tags ist und der Wert die entsprechende Inhaltseigenschaft ist.
Betrachten Sie beispielsweise das folgende HTML -Beispiel:
<html>
<head>
<meta name="description" content="Dies ist eine Testseite">
<meta name="keywords" content="PHP, HTML, meta">
<meta property="og:title" content="Open Graph Title">
</head>
<body>
<!-- Seiteninhalt -->
</body>
</html>
Nach Analyse dieser HTML -Datei mit get_meta_tags wird das zurückgegebene Array sein:
array(
'description' => 'Dies ist eine Testseite',
'keywords' => 'PHP, HTML, meta',
'og:title' => 'Open Graph Title'
)
Bei der Parsen der Funktion von GET_META_TAGS werden nur die Namen und Eigenschaften der Eigenschaften beachtet, und die Tags des HTTP-äquiv -Attributs werden ignoriert. Wenn Sie es in Ihrem HTML haben Das Tag wird nicht von get_meta_tags analysiert.
Wenn Sie die Tags für HTTP-Equiv -Attribute analysieren müssen, können Sie einen leistungsstärkeren HTML-Parser wie Domdocument verwenden, um alle zu erhalten Tags und ihr Inhalt.
$doc = new DOMDocument();
@$doc->loadHTMLFile('yourfile.html');
$metas = $doc->getElementsByTagName('meta');
foreach ($metas as $meta) {
$name = $meta->getAttribute('name');
$content = $meta->getAttribute('content');
echo "$name: $content\n";
}
Diese Methode kann alle einschließlich HTTP-äquiv analysieren Etikett.
Wenn die URL übergeben wird, kann die Funktion von GET_META_TAGS manchmal bestimmte Zeichenkodierungen korrekt analysieren (z. B. UTF-8 oder GB2312). Wenn die Codierung der HTML -Datei nicht mit der Standardcodierung von PHP übereinstimmt, können Parsing -Fehler auftreten.
Sie können zuerst den HTML -Inhalt durch die Funktion MB_CONVERT_ENCODING in die korrekte Zeichenkodierung konvertieren und dann Get_Meta_Tags aufrufen:
$html = file_get_contents('yourfile.html');
$html = mb_convert_encoding($html, 'UTF-8', 'auto');
file_put_contents('tempfile.html', $html);
$metaTags = get_meta_tags('tempfile.html');
print_r($metaTags);
Auf diese Weise können Sie sicherstellen, dass der HTML -Inhalt beim Parsen richtig codiert wird.
Einige Webseiten Tags werden über JavaScript dynamisch geladen. Die Funktion get_meta_tags kann diese dynamischen Inhalte nicht analysieren, da sie nur den statischen Inhalt der HTML -Datei liest und JavaScript nicht ausführt.
Für dynamisch generierte HTML -Inhalte wird empfohlen, Browser -Automatisierungswerkzeuge wie Selen oder Puppenspieler zu verwenden, um das Browserverhalten zu simulieren und das endgültige renderierte HTML zu erhalten. Zu diesem Zeitpunkt kann das gerenderte HTML mit Get_Meta_Tags extrahiert und analysiert werden.
In HTML sind Tags und Attributnamen Fall-unempfindlich. In dem von der Funktion get_meta_tags zurückgegebenen Array sind die Schlüssel normalerweise in Kleinbuchstaben. Wenn Sie Großbuchstaben in Ihrem HTML verwenden, , get_meta_tags wird es weiterhin in Beschreibung (Kleinbuchstaben) analysieren.
Wenn das zurückgegebene Meta -Tag für Fall sensibel sein muss, kann es manuell in ein einheitliches Format umgewandelt oder direkt in den analysierten Daten verarbeitet werden.
$metaTags = get_meta_tags('yourfile.html');
$metaTags = array_change_key_case($metaTags, CASE_LOWER);
Wenn der eingehende Dateipfad falsch ist oder die Datei selbst nicht hat Tags, Get_Meta_Tags, gibt ein leeres Array zurück. Zu diesem Zeitpunkt kann dies daran liegen, dass das HTML -Dateiformat nicht standardisiert ist oder der Dateipfad nicht zugänglich ist.
Stellen Sie sicher, dass der Dateipfad korrekt ist und dass die HTML -Datei den Standards entspricht. Wenn das Problem weiterhin besteht, können Sie überprüfen, ob die Datei die richtige UTF-8-Codierungserklärung enthält, oder die Fehlerbehandlung verwenden, um das Problem zu fangen und zu debuggen.
$html = file_get_contents('yourfile.html');
if ($html === false) {
die('Die Datei kann nicht gelesen werden');
}
$metaTags = get_meta_tags('yourfile.html');
if (empty($metaTags)) {
echo "Nicht gefunden meta Etikett。\n";
}
Verwandte Tags:
HTML