Start · Sprachen · PHP · Referenz · mb_get_info

mb_get_info

Funktion

Liefert interne Einstellungen der mbstring-Erweiterung, wie Standard-Kodierung, Sprache und weitere Konfigurationswerte.

seit PHP 4.2.0 Kategorie: string

Signatur

mb_get_info(string $type = 'all'): array|string|int|false

Beschreibung

mb_get_info() gibt aktuelle Konfigurationswerte der PHP-Multibyte-String-Erweiterung (mbstring) zurück. Damit lässt sich zur Laufzeit prüfen, welche Einstellungen für die Multibyte-Verarbeitung aktiv sind – etwa die interne Kodierung, die HTTP-Eingabe-/Ausgabe-Kodierung oder die aktuell eingestellte Sprache.

Wird 'all' (oder kein Argument) übergeben, liefert die Funktion ein assoziatives Array mit allen verfügbaren Einstellungen. Über den $type-Parameter lässt sich gezielt ein einzelner Wert abfragen, z. B. 'internal_encoding', 'http_input', 'http_output', 'language', 'mail_charset' oder 'func_overload'.

Diese Funktion ist besonders nützlich beim Debugging von Zeichenkodierungsproblemen, beim Überprüfen der Laufzeitkonfiguration in Deployment-Skripten oder beim Testen, ob mb_internal_encoding() die gewünschte Kodierung korrekt gesetzt hat.

Beachte, dass func_overload seit PHP 7.2 als deprecated gilt und die entsprechende mbstring-Option in modernen Versionen nicht mehr unterstützt wird.

Parameter

Name Typ Default Beschreibung
$type string all Gibt an, welche Einstellung abgefragt werden soll. Mögliche Werte sind z. B. 'all', 'internal_encoding', 'http_input', 'http_output', 'http_output_conv_mimetypes', 'mail_charset', 'mail_header_encoding', 'mail_body_encoding', 'illegal_chars', 'encoding_translation', 'language', 'detect_order', 'substitute_character', 'strict_detection'. Mit 'all' werden alle Werte als Array zurückgegeben.

Rückgabewert

Typ
array|string|int|false
Beschreibung
Bei $type = 'all' ein assoziatives Array mit allen mbstring-Konfigurationswerten. Bei einem spezifischen $type den entsprechenden Wert als string oder int. Gibt false zurück, wenn ein unbekannter $type angegeben wurde.

Beispiele

Alle mbstring-Einstellungen abfragen

<?php
$info = mb_get_info();
foreach ($info as $key => $value) {
    echo $key . ': ' . (is_array($value) ? implode(', ', $value) : $value) . PHP_EOL;
}
internal_encoding: UTF-8 http_input: pass http_output: pass http_output_conv_mimetypes: ^(text/|application/xhtml\+xml) mail_charset: UTF-8 mail_header_encoding: BASE64 mail_body_encoding: BASE64 illegal_chars: 0 encoding_translation: Off language: neutral detect_order: ASCII, UTF-8 substitute_character: 63 strict_detection: Off

Einzelne Einstellung abfragen und prüfen

<?php
// Sicherstellen, dass die interne Kodierung UTF-8 ist
$encoding = mb_get_info('internal_encoding');
if ($encoding !== 'UTF-8') {
    mb_internal_encoding('UTF-8');
    echo 'Interne Kodierung wurde auf UTF-8 gesetzt.' . PHP_EOL;
} else {
    echo 'Interne Kodierung ist bereits UTF-8.' . PHP_EOL;
}

// Aktuelle Sprache abfragen
$language = mb_get_info('language');
echo 'Aktuelle mbstring-Sprache: ' . $language . PHP_EOL;
Interne Kodierung ist bereits UTF-8. Aktuelle mbstring-Sprache: neutral

// Wichtig · Fallstricke

Deprecation-Hinweis: Die Option func_overload ist seit PHP 7.2.0 als veraltet markiert und wurde in PHP 8.0 vollständig entfernt. In älteren Installationen konnte mb_get_info('func_overload') genutzt werden, um zu prüfen, ob Standard-String-Funktionen durch Multibyte-Varianten überschrieben wurden – dieses Verhalten sollte in neuem Code nicht mehr verwendet werden.

Die verfügbaren Schlüssel im zurückgegebenen Array können je nach PHP-Version variieren. Unbekannte $type-Werte führen zu einem Rückgabewert von false – daher sollte der Rückgabewert stets mit === false geprüft werden, wenn die Existenz eines Wertes unsicher ist.