Stanislaus
24-11-2003, 12:44
Moin moin!
Ich hätte da gerne mal ein Problem mit der "setlocale()" Funktion.
php.net schreibt:
http://de3.php.net/manual/en/function.setlocale.php
If locale is NULL or "0", the locale setting is not affected, only the current setting is returned.
Das O'Reilly PHP-Kochbuch schreibt:
Um das derzeitige Locale herauszufinden, ohne es zu ändern, rufen Sie setlocale() mit einem NULL-Locale auf.
So weit so gut. Jetzt kasper ich schon seit 2 Tagen mit dem Kram rum und wunder mich, daß:
echo "LC_ALL = " . setlocale(LC_ALL, NULL) . "<br />";
echo "set: " . setlocale(LC_ALL, 'de_DE') . "<br />";
echo "LC_ALL = " . setlocale(LC_ALL, NULL) . "<br />";
nicht wie erhofft:
LC_ALL = C
set: de_DE
LC_ALL = de_DE;...
sondern
LC_ALL = C
set: de_DE
LC_ALL = C
zurück gibt.
Nun hab ich mal statt NULL einfach 0 übergeben und das Ergebnis war korrekt. NULL scheint, entgegen der Angaben auf php.net, auf das ursprüngliche locale zurückzusetzen wärend 0 das korrekte locale abfragt.
Nun meine Frage. Lügt php.net :D, gibt es eine php Option, die besagtes Verhalten beeinflusst oder bin ich einfach nur dämlich und hab irgendetwas übersehen?
Oder kann zumindest jemand dieses Verhalten nachvollziehen?
Der ganze Klumpatsch läuft unter: Apache/2.0.48 (Gentoo/Linux) mod_ssl/2.0.48 OpenSSL/0.9.6k PHP/4.3.3
Besten Dank!
Ich hätte da gerne mal ein Problem mit der "setlocale()" Funktion.
php.net schreibt:
http://de3.php.net/manual/en/function.setlocale.php
If locale is NULL or "0", the locale setting is not affected, only the current setting is returned.
Das O'Reilly PHP-Kochbuch schreibt:
Um das derzeitige Locale herauszufinden, ohne es zu ändern, rufen Sie setlocale() mit einem NULL-Locale auf.
So weit so gut. Jetzt kasper ich schon seit 2 Tagen mit dem Kram rum und wunder mich, daß:
echo "LC_ALL = " . setlocale(LC_ALL, NULL) . "<br />";
echo "set: " . setlocale(LC_ALL, 'de_DE') . "<br />";
echo "LC_ALL = " . setlocale(LC_ALL, NULL) . "<br />";
nicht wie erhofft:
LC_ALL = C
set: de_DE
LC_ALL = de_DE;...
sondern
LC_ALL = C
set: de_DE
LC_ALL = C
zurück gibt.
Nun hab ich mal statt NULL einfach 0 übergeben und das Ergebnis war korrekt. NULL scheint, entgegen der Angaben auf php.net, auf das ursprüngliche locale zurückzusetzen wärend 0 das korrekte locale abfragt.
Nun meine Frage. Lügt php.net :D, gibt es eine php Option, die besagtes Verhalten beeinflusst oder bin ich einfach nur dämlich und hab irgendetwas übersehen?
Oder kann zumindest jemand dieses Verhalten nachvollziehen?
Der ganze Klumpatsch läuft unter: Apache/2.0.48 (Gentoo/Linux) mod_ssl/2.0.48 OpenSSL/0.9.6k PHP/4.3.3
Besten Dank!