Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

setlocale

String-Funktionen

    Befehl:
string setlocale ( int $category , string $locale [, string $... ] )

string setlocale ( int $category , array $locale )


    Parameter-Liste:
NameBeschreibung
categorycategory 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)
locale

Ist locale NULL oder der leere String "", werden die Namen der Locales von den Werten der 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.

...(Optionale string oder array Parameter die als Locale-Einstellungen bis zum Erfolg verwendet werden.)
Hinweis:
Unter Windows setzt setlocale(LC_ALL, '') die Locale Namen aus den Regional/Sprache Einstellungen des Systems; (erreichbar über die Systemsteuerung).

    Beschreibung:
Setzt Locale-Informationen.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Tips:
Tips:

Windowsuser finden weitergehende Informationen über locale-Strings auf Microsofts MSDN-Webseite. Unterstützte Language-Strings können Sie unter » http://msdn.microsoft.com/en-us/library/39cwe7zf%28v=vs.90%29.aspx, Country/Region-Strings unter » http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.90%29.aspx nachschlagen.


    Warnung:
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.


setlocale() - Beispiel:


Eingabe:
<?php
/* locale auf Holländisch 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'";
?>


Beschreibung:
Mit setlocale() kann man die Lokalisierungseinstellungen der angegebenen Kategorie (category) auf ein bestimmtes Land (locale) setzen. Die Auswahl des Landes ist optional; falls der Wert local leer ist (""), so wird der Wert der entsprechenden Umgebungsvariablen genommen. Ist local "0", werden die Einstellungen nicht ver�ndert, sondern der zuvor gesetzte Wert zur�ckgegeben.

Beschreibung:
Version Beschreibung
7.0.0 Die Unterstützung für an den category Parameter übergebene Zeichenketten wurde entfernt. Nur LC_* Konstanten können ab dieser Version verwendet werden.
5.3.0 Die Funktion wirft nun eine E_DEPRECATED-Notice, wenn ein String statt einer der LC_*-Konstanten an den Parameter category übergeben wird.
4.3.0 Die Übergabe mehrerer Locales wurde möglich.
4.2.0 Die Übergabe von category als Zeichenkette wird 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.
setlocale() - Beispiel 2: für Windows


Eingabe:
<?php
/* locale auf Holländisch 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'";
?>

Beschreibung:
Version Beschreibung
7.0.0 Die Unterstützung für an den category Parameter übergebene Zeichenketten wurde entfernt. Nur LC_* Konstanten können ab dieser Version verwendet werden.
5.3.0 Die Funktion wirft nun eine E_DEPRECATED-Notice, wenn ein String statt einer der LC_*-Konstanten an den Parameter category übergeben wird.
4.3.0 Die Übergabe mehrerer Locales wurde möglich.
4.2.0 Die Übergabe von category als Zeichenkette wird 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.
String-Funktionen