Start · Sprachen · PHP · Referenz · exif_tagname

exif_tagname

Funktion

Gibt den lesbaren Header-Namen (Tag-Name) für einen numerischen EXIF-Tag-Index zurück.

seit PHP 4.2.0 Kategorie: io

Signatur

exif_tagname(int $index): string|false

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

Typ
string|false
Beschreibung
Gibt den Tag-Namen als Zeichenkette zurück, wenn der Index bekannt ist (z. B. '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);
    }
}
Tag 0x010E => ImageDescription Tag 0x010F => Make Tag 0x0110 => Model Tag 0x0112 => Orientation Tag 0x0132 => DateTime

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";
}
Kein bekannter EXIF-Tag für Index: 0x9999

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";
Tag 0x8827 steht für: ISOSpeedRatings

// 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.