Archivio > Scripting e Programmazione, Linux e Open Source > Singolo: PHP, Ubuntu, e setlocale()

PHP, Ubuntu, e setlocale()

Piccolo intervento infrasettimanale per avvisarvi che con Ubuntu (e potenzialmente, tutte le distribuzioni Linux basate su Debian) PHP ha qualche problema a leggere la localizzazione impostata nella funzione built-in setlocale().

<?
setlocale(LC_TIME, "it_IT")
echo ucwords(strftime("%A %d %B %Y, %H:%M:%S"))
?>

Restituisce la stringa:
Wednesday 20 December 2006, 18:31:25

Dando un'occhiata ai commenti presenti nella documentazione ufficiale di setlocale(), ho scoperto che sulla nostra linuxbox è possibile ottenere una lista delle localizzazioni attive col comando locale -a.

simone@edgymachine:~$ locale -a
[... lista di pacchetti inglesi...]
it_IT.utf8

Così (grazie a chissà quale geniale intuizione :-P), ho provato a modificare il mio piccolo file .php in:

<?
setlocale(LC_TIME, "it_IT.utf8")
echo ucwords(strftime("%A %d %B %Y, %H:%M:%S"))
?>

E magicamente tutto è funzionato a meraviglia:
Mercoledì 20 Dicembre 2006, 18:40:55

Vi consiglio, comunque, di impostare la funzione in questo modo:

setlocale(LC_TIME, "it_IT", "it", "it_IT.utf8");

In modo tale che PHP controlli prima l'esistenza delle altre localizzazioni, per poi eventualmente passare a quella con estensione uguale alla codifica di caratteri utilizzata.

Approfondimenti

L'articolo è stato di tuo gradimento? Puoi controllare che vi sia altro di tuo interesse nelle categorie e , oppure iscriverti al notiziario RSS e seguirmi su per restare sempre aggiornato sulle ultime pubblicazioni.

Pubblicato mercoledì 20 dicembre 2006.

Discussione [3]

  1. dannyb78 aggiunge:

    [Immagine] Segue l'intervento di dannyb78

    Grandioso, funziona alla perfezione. Grazie!

  2. Tiziano aggiunge:

    [Immagine] Segue l'intervento di Tiziano

    Grazie…. stavo impazzendo

  3. Davide aggiunge:

    [Immagine] Segue l'intervento di Davide

    Ottimo grazie ;)

Discuti

Il blog è in sola lettura.

Paginatura: