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