Start · Sprachen · PHP · Referenz · mb_preferred_mime_name

mb_preferred_mime_name

Funktion

Gibt den bevorzugten MIME-Zeichensatznamen für eine gegebene PHP-Zeichenkodierungsbezeichnung zurück.

seit PHP 4.0.6 Kategorie: string

Signatur

mb_preferred_mime_name(string $encoding): string|false

Beschreibung

mb_preferred_mime_name() ermittelt den standardisierten MIME-Namen einer Zeichenkodierung, wie er z. B. in HTTP-Headern (Content-Type: text/html; charset=UTF-8) oder E-Mail-Headern verwendet werden sollte. Während PHP intern verschiedene Schreibweisen für eine Kodierung akzeptiert (z. B. UTF8, utf-8), liefert diese Funktion die korrekte, normierte Schreibweise gemäß IANA-Standard.

Typische Anwendungsfälle sind das dynamische Setzen von HTTP-Antwort-Headern oder das Erstellen von Content-Type-Metadaten in E-Mail-Bibliotheken, wenn die tatsächliche Kodierung einer Seite oder eines Strings erst zur Laufzeit bekannt ist.

Die Funktion ist Teil der Multibyte-String-Erweiterung (mbstring) und unterstützt alle von dieser Erweiterung bekannten Kodierungen, darunter UTF-8, ISO-8859-1, Shift_JIS, EUC-JP u. v. m.

Parameter

Name Typ Default Beschreibung
$encoding Pflicht string Der Name der Zeichenkodierung, wie er von der mbstring-Erweiterung erkannt wird (z. B. 'UTF-8', 'ISO-8859-1', 'Shift_JIS'). Die Groß-/Kleinschreibung wird dabei ignoriert.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den bevorzugten MIME-konformen Namen der Kodierung als string zurück (z. B. 'UTF-8' oder 'Shift_JIS'). Ist die angegebene Kodierung unbekannt oder ungültig, wird false zurückgegeben.

Beispiele

MIME-Zeichensatznamen für HTTP-Header ermitteln

<?php
$encoding = 'UTF-8';
$mimeName = mb_preferred_mime_name($encoding);

if ($mimeName !== false) {
    header('Content-Type: text/html; charset=' . $mimeName);
    echo 'Content-Type-Header gesetzt: text/html; charset=' . $mimeName;
} else {
    echo 'Unbekannte Kodierung: ' . $encoding;
}
Content-Type-Header gesetzt: text/html; charset=UTF-8

Verschiedene Kodierungen und ihre MIME-Namen

<?php
$encodings = [
    'UTF-8',
    'ISO-8859-1',
    'Shift_JIS',
    'EUC-JP',
    'Windows-1252',
    'utf8',        // interne PHP-Alias-Schreibweise
    'UnbekannteKodierung',
];

foreach ($encodings as $enc) {
    $mime = mb_preferred_mime_name($enc);
    if ($mime !== false) {
        printf("%-20s => %s\n", $enc, $mime);
    } else {
        printf("%-20s => (unbekannt / ungültig)\n", $enc);
    }
}
UTF-8 => UTF-8 ISO-8859-1 => ISO-8859-1 Shift_JIS => Shift_JIS EUC-JP => EUC-JP Windows-1252 => windows-1252 utf8 => UTF-8 UnbekannteKodierung => (unbekannt / ungültig)

// Wichtig · Fallstricke

Verfügbarkeit: Die Funktion erfordert die PHP-Erweiterung mbstring. Ist diese nicht installiert oder aktiviert, führt der Aufruf zu einem fatalen Fehler. Prüfe die Verfügbarkeit ggf. mit function_exists('mb_preferred_mime_name').

Rückgabe bei Fehler: Bei einer unbekannten Kodierung wird false zurückgegeben. Verwende einen strikten Vergleich (=== false), um korrekt zwischen einem gültigen Ergebnis und einem Fehler zu unterscheiden, da der Rückgabewert ansonsten in einem booleschen Kontext fälschlicherweise als Fehler gewertet werden könnte.

Kodierungs-Aliase: PHP-interne Alias-Schreibweisen wie 'utf8' oder 'UTF8' werden akzeptiert und auf den korrekten MIME-Namen normiert ('UTF-8').