Signatur
Beschreibung
exif_tagname() wandelt einen numerischen EXIF-Tag-Index in seinen entsprechenden menschenlesbaren Namen um. Das ist besonders nützlich, wenn man die rohen Tag-Nummern aus EXIF-Metadaten von Bildern ausliest und diese für Anzeigezwecke oder Protokollierung verständlich benennen möchte.
EXIF-Tags sind in der EXIF-Spezifikation als numerische Konstanten definiert (z. B. 0x010E für den Bild-Beschreibungstag). Diese Funktion übersetzt solche Hex- oder Dezimalwerte in den offiziellen Tag-Namen wie ImageDescription, Make, Model usw.
Die Funktion eignet sich gut in Kombination mit exif_read_data(), wenn man die zurückgegebenen Schlüssel mit ihrer offiziellen EXIF-Bezeichnung abgleichen oder dynamisch generierte Tag-Indizes beschriften möchte. Ist der angegebene Index unbekannt, gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $index Pflicht | int | Numerischer EXIF-Tag-Index, dessen Name ermittelt werden soll. Kann als Dezimal- oder Hexadezimalzahl übergeben werden, z. B. 0x010E oder 270. |
Rückgabewert
'ImageDescription'). Gibt false zurück, wenn der Index nicht einem bekannten EXIF-Tag entspricht.Beispiele
Tag-Namen für bekannte EXIF-Indizes ausgeben
<?php
// Bekannte EXIF-Tag-Indizes
$tags = [
0x010E, // ImageDescription
0x010F, // Make
0x0110, // Model
0x0112, // Orientation
0x0132, // DateTime
];
foreach ($tags as $index) {
$name = exif_tagname($index);
if ($name !== false) {
printf("Tag 0x%04X => %s\n", $index, $name);
} else {
printf("Tag 0x%04X => unbekannt\n", $index);
}
}
Unbekannten Tag-Index behandeln
<?php
// Ein nicht existierender Tag-Index
$index = 0x9999;
$name = exif_tagname($index);
if ($name === false) {
echo "Kein bekannter EXIF-Tag für Index: 0x" . strtoupper(dechex($index)) . "\n";
} else {
echo "Tag-Name: " . $name . "\n";
}
Kombination mit exif_read_data()
<?php
// EXIF-Daten aus einem JPEG-Bild lesen und Tag-Namen ergänzen
$bildpfad = 'foto.jpg';
if (file_exists($bildpfad)) {
$exifDaten = exif_read_data($bildpfad, null, true);
if ($exifDaten !== false && isset($exifDaten['EXIF'])) {
foreach ($exifDaten['EXIF'] as $key => $value) {
// Numerische Konstante für bekannte Tags ermitteln
// (z. B. mit einer eigenen Mapping-Tabelle oder direkt über den Schlüssel)
echo htmlspecialchars($key) . ': ' . htmlspecialchars((string)$value) . "\n";
}
}
}
// Direkte Verwendung: Tag 0x8827 = ISOSpeedRatings
$tagName = exif_tagname(0x8827);
echo "Tag 0x8827 steht für: " . $tagName . "\n";
// Wichtig · Fallstricke
Verfügbarkeit: Die Funktion ist nur verfügbar, wenn PHP mit der EXIF-Erweiterung kompiliert wurde (--enable-exif). Auf Windows-Systemen muss die Erweiterung php_exif.dll in der php.ini aktiviert sein, und zwar nach php_mbstring.dll.
Rückgabe bei unbekannten Indizes: Nicht jeder ganzzahlige Wert entspricht einem definierten EXIF-Tag. Prüfe daher den Rückgabewert immer mit === false, da Zeichenketten wie '0' sonst fälschlich als false interpretiert werden könnten.
Zeichenkodierung: Die zurückgegebenen Tag-Namen sind immer ASCII-Bezeichner gemäß EXIF-Spezifikation und enthalten keine Sonderzeichen.