Start · Sprachen · PHP · Referenz · read_exif_data

read_exif_data

Funktion

Alias von <code>exif_read_data()</code> — liest EXIF-Metadaten aus einer JPEG- oder TIFF-Datei.

seit PHP 4.0.1 Kategorie: io

Signatur

read_exif_data(string $file, string|null $required_sections = null, bool $as_arrays = false, bool $read_thumbnail = false): array|false

Beschreibung

read_exif_data() ist ein direkter Alias der Funktion exif_read_data() und verhält sich in jeder Hinsicht identisch. Sie liest EXIF-Header-Informationen (Exchangeable Image File Format) aus einer Bild-Datei (JPEG oder TIFF) und gibt diese als assoziatives Array zurück.

Die zurückgegebenen Daten können Informationen wie Kameramodell, Aufnahmedatum, Belichtungszeit, GPS-Koordinaten und viele weitere technische Metadaten enthalten. Dies ist etwa nützlich, um Fotos automatisch nach Aufnahmedatum zu sortieren oder Kameradaten anzuzeigen.

Da es sich um einen Alias handelt, sollte in modernem Code bevorzugt die Originalfunktion exif_read_data() verwendet werden. Aliases können in zukünftigen PHP-Versionen als veraltet markiert oder entfernt werden.

Die PHP-Installation muss mit EXIF-Unterstützung kompiliert worden sein (--enable-exif), damit diese Funktion verfügbar ist. Unter Windows muss die Extension php_mbstring.dll vor php_exif.dll in der php.ini geladen werden.

Parameter

Name Typ Default Beschreibung
$file Pflicht string Pfad zur Bild-Datei (JPEG oder TIFF) oder eine URL, aus der die EXIF-Daten gelesen werden sollen.
$required_sections string|null null Kommagetrennte Liste der Sektionen, die im Ergebnis enthalten sein müssen (z. B. 'IFD0,EXIF'). Ist eine der angegebenen Sektionen nicht vorhanden, wird false zurückgegeben. Mögliche Werte: FILE, COMPUTED, ANY_TAG, IFD0, THUMBNAIL, COMMENT, EXIF.
$as_arrays bool false Wenn true, wird jede Sektion als eigenes Array zurückgegeben, auch wenn sie nur einen Eintrag enthält.
$read_thumbnail bool false Wenn true, werden auch die Rohdaten des eingebetteten Thumbnails gelesen und im Ergebnis-Array abgelegt.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein assoziatives Array mit den EXIF-Metadaten zurück oder false, wenn die Daten nicht gelesen werden konnten (z. B. ungültige Datei, fehlende Pflichtsektion, keine EXIF-Daten vorhanden).

Beispiele

Alle EXIF-Daten eines Fotos ausgeben

<?php
$exifData = read_exif_data('foto.jpg');

if ($exifData === false) {
    echo 'Keine EXIF-Daten gefunden oder Datei nicht lesbar.';
} else {
    echo 'Kamera: ' . ($exifData['Make'] ?? 'unbekannt') . ' ' . ($exifData['Model'] ?? '') . PHP_EOL;
    echo 'Aufnahmedatum: ' . ($exifData['DateTimeOriginal'] ?? 'unbekannt') . PHP_EOL;
    echo 'Belichtungszeit: ' . ($exifData['ExposureTime'] ?? 'unbekannt') . PHP_EOL;
}
Kamera: Canon EOS R6 Aufnahmedatum: 2023:07:15 14:32:10 Belichtungszeit: 1/200

GPS-Koordinaten aus EXIF-Daten extrahieren

<?php
$exifData = read_exif_data('location_photo.jpg', 'GPS', true);

if (!empty($exifData['GPS'])) {
    $gps = $exifData['GPS'];
    echo 'GPS-Breitengrad: ' . implode(', ', $gps['GPSLatitude'] ?? ['n/a']) . PHP_EOL;
    echo 'GPS-Längengrad: ' . implode(', ', $gps['GPSLongitude'] ?? ['n/a']) . PHP_EOL;
    echo 'Richtung Breite: ' . ($gps['GPSLatitudeRef'] ?? 'n/a') . PHP_EOL;
    echo 'Richtung Länge: ' . ($gps['GPSLongitudeRef'] ?? 'n/a') . PHP_EOL;
} else {
    echo 'Keine GPS-Daten vorhanden.';
}
GPS-Breitengrad: 48/1, 8/1, 0/1 GPS-Längengrad: 11/1, 34/1, 0/1 Richtung Breite: N Richtung Länge: E

// Wichtig · Fallstricke

Sicherheitshinweis: Verarbeite niemals EXIF-Daten aus nicht vertrauenswürdigen Quellen, ohne sie zu validieren und zu bereinigen. EXIF-Daten können beliebige Strings enthalten — werden sie ungeprüft ausgegeben, drohen XSS-Angriffe. Nutze stets htmlspecialchars() bei der Ausgabe.

Deprecation: Da read_exif_data() lediglich ein Alias ist, empfiehlt es sich, in aktuellem Code ausschließlich exif_read_data() zu verwenden, um zukunftssicher zu bleiben.

Nicht alle Kameras und Bildbearbeitungsprogramme schreiben EXIF-Daten. Außerdem können Bilder aus dem Web oder sozialen Netzwerken EXIF-Daten aus Datenschutzgründen bereinigt haben — ein leeres oder unvollständiges Array ist daher normal.