[PHP] setlocale direct na gebruik weer op standaard zetten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een php script waarbij ik eerst de datum in het Nederlands genereer en daarna een ander script uit laat voeren. Het 2e script kan niet overweg met de setlocale die is ingesteld bij het 1e script.

code:
1
setlocale(LC_ALL, 'dutch');


Het is geen oplossing om het 2e script eerst te laten werken aangezien deze data nodig heeft die het 1e script genereert. 2 bestanden is ook geen optie.

Wat ook geen optie is, is het veranderen van de setlocale in een andere taal. Het tweede script kan er simpelweg niet tegen dat setlocale is gebruikt.

Mijn vraag is nu. Hoe kan ik na het gebruik van setlocale ervoor zorgen dat het lijkt alsof setlocale niet is gebruikt.

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Misschien moet je wel gewoon zorgen dat je 2e script wel gewoon werkt met setlocale :?

Laat anders eens wat zien van foutmeldingen o.i.d...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
drm schreef op 29 december 2003 @ 16:24:
Misschien moet je wel gewoon zorgen dat je 2e script wel gewoon werkt met setlocale :?

Laat anders eens wat zien van foutmeldingen o.i.d...
Dat is helaas absoluut geen optie.

Wat ik heb is een php-bestand die meerdere scripts uitvoert. Als eerste wordt er een .txt bestandje aangemaakt met bepaalde waarden en tekst uit een formulier en een database daarbij is het ook van belang dat de Nederlandse datum wordt weergegeven. Als tweede wordt een extern script gebruikt om van het .txt bestand een .pdf bestand te maken. Dit is een script van een derde waaraan ik niets kan veranderen zonder het onklaar te maken 8)7

Het lijkt mij dat er een simpele oplossing moet zijn om ervoor te zorgen dat het lijkt dat setlocale niet gebruikt is.

Waar het fout gaat bij het tweede script is dat het .pdf bestand niet goed is en niet kan worden geopend. Als ik setlocale verwijder dan werkt alles prima.

[ Voor 9% gewijzigd door Verwijderd op 29-12-2003 16:31 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het al. Wat ik zocht was:

code:
1
setlocale(LC_ALL, 0);

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Heb je dat probleem ook als je bijvoorbeeld alleen de LC_TIME op bijv. 'nl_NL' zet?

Overigens, als je 'dutch' als locale gebruikt kan ik me voorstellen dat er e.e.a. mis gaat... Kijk eens op http://www.w3.org/WAI/ER/IG/ert/iso639.htm voor de juiste taalcodes en op http://www.php.net/setlocale voor wat voorbeelden.

Verder zou je kunnen proberen even dit te gebruiken:
If locale is NULL or "0", the locale setting is not affected, only the current setting is returned.
Dus de huidige locale opvragen voordat je hem set en weer terugzetten als je klaar bent.
PHP:
1
2
3
4
5
$previousLocale = setlocale ( 0 );
setlocale ( LC_TIME, 'nl_NL' );
// do yer thing
setlocale ( LC_TIME, $previousLocale );
// do the other thing


edit:
te laat :z

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz