Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 Unit Test Generator
 TLD Liste
 Webkatalog‑Verzeichnis

Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
 
 
 

Meta-Tags einer Webseite auslesen mit get_meta_tags()

Sie befinden sich: Home > Php Tutorial > Meta-Tags einer Webseite au...

Meta-Tags einer Webseite auslesen mit get_meta_tags()
Eintrag am:
12.08.2010
Hits / Besucher:
5942
Sprache:
  Deutsch
Tutorial Art:
eigenes
Eingetragen von:
 
Beschreibung

Meta-Tags liefern Informationen über eine Webseite, die im Browser nicht sichtbar sind: Beschreibung, Autor, Zeichensatz und Anweisungen für Suchmaschinen. Mit der PHP-Funktion get_meta_tags() lassen sich diese Daten aus jeder HTML-Seite extrahieren.

Grundlegende Verwendung

Die Funktion erwartet einen Dateipfad oder eine URL und gibt ein assoziatives Array mit allen <meta name="...">-Tags zurück:

<?php

$tags = get_meta_tags('https://www.example.com');

if ($tags !== false) {
echo $tags['description'] ?? 'Keine Beschreibung';
echo $tags['author'] ?? 'Kein Autor';
}
?>

Die Array-Schlüssel entsprechen dem name-Attribut der Meta-Tags, umgewandelt in Kleinbuchstaben. Bindestriche bleiben erhalten, zum Beispiel wird <meta name="revisit-after"> zu $tags['revisit-after'].

Praxisbeispiel: SEO-Daten mehrerer Seiten vergleichen

Ein nützlicher Einsatz ist der Vergleich von Meta-Descriptions verschiedener Seiten, etwa um doppelte Beschreibungen zu finden:

<?php

$seiten = [
'https://www.example.com',
'https://www.example.com/kontakt',
'https://www.example.com/impressum',
];

foreach ($seiten as $url) {
$tags = @get_meta_tags($url);

if ($tags === false) {
echo $url . ': nicht erreichbar' . PHP_EOL;
continue;
}

$desc = $tags['description'] ?? '(keine description)';
echo $url . ': ' . $desc . PHP_EOL;
}
?>

Das @ vor dem Funktionsaufruf unterdrückt Warnungen, falls eine URL nicht erreichbar ist. Die Prüfung auf false fängt diesen Fall sauber ab.

Einschränkungen von get_meta_tags()

Die Funktion hat zwei wichtige Einschränkungen, die man kennen sollte:

Nur name-Attribut: get_meta_tags() liest ausschließlich Tags mit dem Attribut name. Open-Graph-Tags (<meta property="og:title">) und Twitter-Cards (<meta name="twitter:card">) werden teilweise nicht erkannt, weil sie das property-Attribut statt name verwenden.

allow_url_fopen: Für Remote-URLs muss die PHP-Einstellung allow_url_fopen in der php.ini aktiviert sein. Auf manchen Shared-Hosting-Servern ist diese Einstellung deaktiviert.

Alternative: DOMDocument für alle Meta-Tags

Wer auch Open-Graph-Tags oder andere Meta-Varianten auslesen möchte, kann stattdessen DOMDocument verwenden. Diese Klasse parst den gesamten HTML-Code und erlaubt den Zugriff auf beliebige Attribute:

<?php

function alleMetaTags(string $html): array
{
$doc = new DOMDocument();
@$doc->loadHTML($html);

$tags = [];
$metaElements = $doc->getElementsByTagName('meta');

foreach ($metaElements as $meta) {
$key = $meta->getAttribute('name')
?: $meta->getAttribute('property');

if ($key !== '') {
$tags[$key] = $meta->getAttribute('content');
}
}

return $tags;
}

$html = file_get_contents('https://www.example.com');
$tags = alleMetaTags($html);

/* Jetzt sind auch OG-Tags verfügbar */
echo $tags['og:title'] ?? 'Kein OG-Title';
echo $tags['og:description'] ?? 'Keine OG-Description';
echo $tags['description'] ?? 'Keine Description';
?>

Mit DOMDocument werden sowohl name- als auch property-basierte Meta-Tags erfasst. Das ist besonders für die Auswertung von Social-Media-Metadaten relevant.

Wann welchen Ansatz wählen?

get_meta_tags() ist die einfachste Lösung, wenn nur Standard-Meta-Tags wie description, author oder robots gebraucht werden. Für Open-Graph-Tags, Twitter-Cards oder andere Sonderformate führt kein Weg an DOMDocument vorbei.

 

Tags:

 

 

Kommentare (0)

Noch keine Kommentare. Sei der Erste!

Melde dich an, um einen Kommentar zu schreiben.
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.