Signatur
Beschreibung
mb_encoding_aliases() liefert ein indiziertes Array mit allen alternativen Bezeichnungen (Aliasen), unter denen eine bestimmte Zeichenkodierung in der mbstring-Erweiterung bekannt ist. Jede Kodierung kann neben ihrem Hauptnamen mehrere alternative Namen besitzen, unter denen sie ebenfalls akzeptiert wird.
Die Funktion ist nützlich, wenn man prüfen möchte, welche Schreibweisen oder Synonyme für eine Kodierung gültig sind – beispielsweise um Benutzereingaben zu normalisieren oder zu validieren, bevor man sie an mbstring-Funktionen weitergibt. So hat etwa UTF-8 Aliase wie utf8 oder UTF8.
Im Fehlerfall – wenn die übergebene Kodierung nicht bekannt ist – wird false zurückgegeben und ein Fehler der Stufe E_WARNING ausgelöst. Die zurückgegebenen Alias-Namen können direkt in anderen mbstring-Funktionen wie mb_convert_encoding() verwendet werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $encoding Pflicht | string | Der Hauptname der Zeichenkodierung, deren Aliase ermittelt werden sollen, z. B. UTF-8, ISO-8859-1 oder Shift_JIS. Groß-/Kleinschreibung wird von mbstring toleriert. |
Rückgabewert
false zurück, wenn die Kodierung unbekannt ist, und löst dabei eine E_WARNING aus.Beispiele
Aliase von UTF-8 ausgeben
<?php
$aliases = mb_encoding_aliases('UTF-8');
if ($aliases !== false) {
echo 'Aliase für UTF-8:' . PHP_EOL;
foreach ($aliases as $alias) {
echo ' - ' . $alias . PHP_EOL;
}
} else {
echo 'Unbekannte Kodierung.';
}
Benutzereingabe einer Kodierung normalisieren
<?php
function normalizeEncoding(string $userInput): string|false {
$knownEncodings = mb_list_encodings();
foreach ($knownEncodings as $encoding) {
if (strcasecmp($encoding, $userInput) === 0) {
return $encoding;
}
$aliases = mb_encoding_aliases($encoding);
if ($aliases !== false) {
foreach ($aliases as $alias) {
if (strcasecmp($alias, $userInput) === 0) {
return $encoding;
}
}
}
}
return false;
}
$canonical = normalizeEncoding('utf8');
echo $canonical !== false
? 'Kanonischer Name: ' . $canonical
: 'Kodierung nicht gefunden.';
// Wichtig · Fallstricke
Die Funktion gibt bei unbekannter Kodierung false zurück und löst eine E_WARNING aus. Um die Warnung zu unterdrücken, kann der Aufruf mit @ vorangestellt werden, besser jedoch vorher prüfen, ob die Kodierung in mb_list_encodings() enthalten ist.
Zu beachten ist, dass die zurückgegebene Liste nur die Aliase enthält, nicht den Hauptnamen selbst. Ein Vergleich sollte also beide Mengen berücksichtigen.