Signatur
Beschreibung
mb_list_encodings() liefert eine vollständige Liste aller Zeichenkodierungen, die die PHP-Extension mbstring kennt und verarbeiten kann. Das zurückgegebene Array enthält die Kodierungsnamen als Strings (z. B. UTF-8, ISO-8859-1, Shift_JIS).
Die Funktion ist besonders nützlich, wenn man prüfen möchte, ob eine bestimmte Kodierung auf dem aktuellen System verfügbar ist, bevor man sie an andere mb_*-Funktionen übergibt. Damit lassen sich plattformabhängige Fehler vermeiden, die entstehen, wenn eine gewünschte Kodierung nicht unterstützt wird.
Typische Einsatzgebiete sind Validierungsroutinen, dynamische Auswahlmenüs in Konfigurationsoberflächen oder automatische Tests, die prüfen, ob eine bestimmte Umgebung die benötigten Kodierungen mitbringt.
Die Ausgabe variiert je nach PHP-Konfiguration und Build-Optionen von libmbfl. Es empfiehlt sich daher, nie fest davon auszugehen, dass eine bestimmte Kodierung verfügbar ist, sondern dies zur Laufzeit über diese Funktion abzusichern.
Rückgabewert
mbstring-Modul unterstützten Kodierungsnamen enthält. Die Reihenfolge der Einträge ist implementationsabhängig und sollte nicht als stabil angesehen werden.Beispiele
Alle unterstützten Kodierungen ausgeben
<?php
$encodings = mb_list_encodings();
echo 'Anzahl unterstützter Kodierungen: ' . count($encodings) . PHP_EOL;
foreach ($encodings as $enc) {
echo $enc . PHP_EOL;
}
Prüfen, ob eine bestimmte Kodierung verfügbar ist
<?php
/**
* Prüft (case-insensitiv), ob eine Kodierung von mbstring unterstützt wird.
*/
function is_encoding_supported(string $encoding): bool
{
$supported = array_map('strtolower', mb_list_encodings());
return in_array(strtolower($encoding), $supported, true);
}
$toCheck = 'Windows-1252';
if (is_encoding_supported($toCheck)) {
echo "Kodierung '{$toCheck}' wird unterstützt." . PHP_EOL;
} else {
echo "Kodierung '{$toCheck}' ist NICHT verfügbar." . PHP_EOL;
}
Kodierungen als JSON-kompatible Liste für eine API-Antwort
<?php
header('Content-Type: application/json; charset=UTF-8');
$encodings = mb_list_encodings();
sort($encodings); // alphabetisch sortieren
echo json_encode(['supported_encodings' => $encodings], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
// Wichtig · Fallstricke
Hinweis zur Groß-/Kleinschreibung: Die zurückgegebenen Kodierungsnamen können in Großbuchstaben, Kleinbuchstaben oder gemischter Schreibweise vorliegen. Beim Vergleich sollte daher immer strtolower() oder strcasecmp() verwendet werden.
Abhängigkeit von der PHP-Umgebung: Die Liste der verfügbaren Kodierungen kann je nach Betriebssystem, PHP-Version und Kompilierungsoptionen variieren. Verlasse dich nicht darauf, dass eine Kodierung auf allen Systemen vorhanden ist.
Voraussetzung: Die mbstring-Extension muss installiert und aktiviert sein. Ist sie nicht verfügbar, existiert die Funktion nicht und führt zu einem fatalen Fehler. Mit extension_loaded('mbstring') lässt sich die Verfügbarkeit vorab prüfen.