PHP Handbuch
Zurück |  | Weiter

# setlocale

(PHP 3, PHP 4, PHP 5)

setlocale -- Setzt Locale Informationen

## Beschreibung

string setlocale ( int category, string locale [, string ...] )
string setlocale ( int category, array locale )

`category` ist eine benannte Konstante (oder Zeichenkette), die die Kategorie der von den lokalen Einstellungen (Locales) betroffenen Funktionen angibt:

- LC_ALL für alle folgenden Werte

- LC_COLLATE für String-Vergleiche, siehe strcoll()

- LC_CTYPE für Klassifizierung und Umwandlung von Zeichen, zum Beispiel strtoupper()

- LC_MONETARY für localeconv()

- LC_NUMERIC für das Dezimal-Trennzeichen (Siehe auch localeconv())

- LC_TIME für Zeit- und Datums-Formatierungen mittels strftime()

- LC_MESSAGES für Systemmeldungen (verfügbar, wenn PHP mit `liblintl` kompiliert wurde)

> Anmerkung: Seit PHP 4.2.0 ist die Übergabe an `category` mittels eines Strings als deprecated gekennzeichnet, verwenden Sie daher immer die obigen Konstanten. Das Übergeben der Konstanten als String (also in Anführungszeichen eingeschlossen) führt zu einer Warnmeldung.

Ist `locale` `NULL` oder ein leerer String `""`, werden die Namen der Locales anhand der Werte der Umgebungsvariablen als Leer-String definiert, also `""`, werden die Werte an Hand der entsprechenden Umgebungsvariablen gleichen Namens wie die obigen Kategorien oder von "LANG" bestimmt.

Ist `locale` `"0"`, sind keine lokalen Einstellungen betroffen, und es wird die aktuelle Einstellung zurückgegeben.

Ist `locale` ein Array oder folgen weitere Parameter, dann wird jedes Arrayelement bzw. jeder Parameter versucht als neuer Locale-Wert zu setzen, bis es gelingt. Dies ist dann sinnvoll, wenn eine Locale-Angabe auf unterschiedlichen Systemen unter verschiedenen Namen bekannt ist oder auch als Fallback für eine eventuell nicht vorhandene Locale-Angabe.

> Anmerkung: Das Übergeben von mehreren Locales wird erst seit PHP 4.3.0 unterstützt.

setlocale() gibt die neue Locale-Einstellung oder `FALSE` zurück, wenn die Locale-Funktionalität von Ihrer Plattform nicht unterstützt wird, die angegebene Locale nicht existiert oder der Kategorie-Name ungültig ist. Ein ungültiger Kategorie-Name erzeugt zusätzlich eine Warnmeldung. Kategorien- und Locale-Namen können sie unter RFC 1766 und ISO 639 nachlesen. Unterschiedliche Systeme verwenden differierende Namensräume für die Locales.

> Anmerkung: Der Rückgabewert von setlocale() ist von dem System abhängig, auf dem PHP läuft. Es wird genau das zurückgegeben, was die Systemfunktion setlocale zurückgibt.

Warnung

Die Locale-Informationen wirken auf den Prozess, nicht auf den Thread. Sofern Sie PHP mit einer Multithreaded Server API wie IIS oder Apache unter Windows einsetzen, rechnen Sie mit unerwarteten Änderungen der Locale-Einstellungen zur Laufzeit des Skripts, auch wenn das Skript selbst keinen setlocale()-Aufruf durchführt. Dies passiert, da andere Skripte in verschiedenen Threads des selben Prozesses zur selben Zeit prozessweit die Locale-Einstellungen mittels setlocale() ändern.

> Tipp: Windowsuser finden weitergehende Informationen über `locale`-Strings auf Microsofts MSDN-Webseite. Unterstützte Language-Strings können Sie unter http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp, Country/Region-Strings unter http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp nachschlagen. Windowssysteme unterstützen Drei-Buchstaben-Codes für Länder/Regionen-Angaben entsprechend `ISO 3166-Alpha-3`, die Sie auf der Unicode Website finden.

Beispiel 1. setlocale() Beispiele

`<?php /* locale auf Holland setzen */ setlocale (LC_ALL, 'nl_NL'); /* Ausgabe: vrijdag 22 december 1978 */ echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978)); /* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */ $loc_de = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); echo "Preferred locale for german on this system is '$loc_de'"; ?>`

Beispiel 2. setlocale()Beispiele for Windows

`<?php /* locale auf Holland setzen */ setlocale(LC_ALL, 'nld_nld'); /* Ausgabe: vrijdag 22 december 1978 */ echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978)); /* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */ $loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu'); echo "Preferred locale for german on this system is '$loc_de'"; ?>`

Zurück | Zum Anfang | Weiter
rtrim | Nach oben | sha1_file