Start · Sprachen · PHP · Referenz · mb_language

mb_language

Funktion

Setzt oder liefert die aktuell verwendete Sprache für Multibyte-String-Operationen (insbesondere für <code>mb_send_mail()</code>).

seit PHP 4.0.6 Kategorie: string

Signatur

mb_language(string $language = ?): string|bool

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 kodierungs­neutral.

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

Typ
string|bool
Beschreibung
Ohne Argument: gibt die aktuell eingestellte Sprache als 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;
Aktuelle MB-Sprache: neutral

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');
Sprache erfolgreich auf 'uni' gesetzt. Aktuelle MB-Sprache: uni

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
Sprache: Japanese

// 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()).