Signatur
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
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;
}
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.';
}
// 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.