Signatur
Beschreibung
mb_language() legt die Sprache fest, die von der Multibyte-Extension für die Kodierung von E-Mail-Headern und -Bodies verwendet wird, vor allem in Verbindung mit mb_send_mail(). Die Sprache bestimmt, welche Zeichenkodierung standardmäßig genutzt wird: Japanese verwendet ISO-2022-JP, uni verwendet UTF-8, neutral ist kodierungsneutral.
Wird kein Argument übergeben, gibt die Funktion die aktuell eingestellte Sprache als String zurück. Wird ein Argument übergeben, setzt sie die neue Sprache und gibt bei Erfolg true, bei Misserfolg false zurück.
Die Einstellung kann alternativ dauerhaft in der php.ini über die Direktive mbstring.language vorgenommen werden. Gültige Werte sind unter anderem Japanese, ja, English, en, uni (Unicode/UTF-8) und neutral.
In modernen Anwendungen, die ausschließlich UTF-8 verwenden, ist diese Funktion meist nicht nötig. Sie ist vor allem relevant, wenn japanische oder andere asiatische Zeichensätze korrekt in E-Mails verarbeitet werden sollen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $language | string | Die zu setzende Sprache. Gültige Werte sind z. B. "Japanese", "ja", "English", "en", "uni" (UTF-8) und "neutral". Wird kein Wert übergeben, wird die aktuelle Sprache zurückgegeben. |
Rückgabewert
string zurück. Mit Argument: gibt true bei Erfolg oder false zurück, wenn die angegebene Sprache ungültig ist.Beispiele
Aktuelle Sprache abfragen
<?php
// Aktuelle Sprache ausgeben (Standard laut php.ini)
$sprache = mb_language();
echo "Aktuelle MB-Sprache: " . $sprache . PHP_EOL;
Sprache setzen und für mb_send_mail verwenden
<?php
// Sprache auf Unicode (UTF-8) setzen
if (mb_language('uni')) {
echo "Sprache erfolgreich auf 'uni' gesetzt." . PHP_EOL;
} else {
echo "Ungültige Sprache angegeben." . PHP_EOL;
}
// Aktuelle Sprache zur Kontrolle ausgeben
echo "Aktuelle MB-Sprache: " . mb_language() . PHP_EOL;
// Interne Kodierung für konsistente E-Mail-Verarbeitung setzen
mb_internal_encoding('UTF-8');
// mb_send_mail() würde nun UTF-8-kodierte Header verwenden
// mb_send_mail('empfaenger@example.com', 'Betreff', 'Nachricht');
Japanische Sprache für E-Mail-Versand
<?php
// Für japanische E-Mails ISO-2022-JP verwenden
mb_language('Japanese');
mb_internal_encoding('UTF-8');
echo "Sprache: " . mb_language() . PHP_EOL;
// mb_send_mail() kodiert Header/Body nun automatisch als ISO-2022-JP
// Wichtig · Fallstricke
Gültige Sprach-Werte: Nur bestimmte Zeichenketten werden akzeptiert. Eine ungültige Angabe führt zur Rückgabe von false, ohne dass eine Ausnahme geworfen wird. Prüfen Sie daher immer den Rückgabewert.
Globale Wirkung: Die gesetzte Sprache gilt für den gesamten PHP-Prozess (bzw. den aktuellen Request). Bei Nutzung in mehrsprachigen Anwendungen sollte die Einstellung vor jedem relevanten Funktionsaufruf gesetzt und ggf. zurückgesetzt werden.
Hauptanwendungsfall: Diese Funktion wirkt sich primär auf mb_send_mail() aus. Für allgemeine String-Operationen wie mb_strlen() oder mb_substr() ist die Sprache nicht relevant — dort zählt die interne Kodierung (mb_internal_encoding()).