Aller au contenu

[Pour Php] Date Fr + Preg_Replace En Fr Via Setlocale


gaspine

Messages recommandés

Bonjour,

voici comment pouvoir afficher une date en francais par exemple pour que :



$dateFormat = "2010-04-20";

$date = strftime("%A %d %B %Y",strtotime("$dateFormat"));

print $date;

donne :
mardi 20 avril 2010
il faut pour cela mettre l'instruction :
setlocale (LC_ALL, 'fr_FR');
Pour que cela fonctionne il faut installer les langues sur notre DSM. 1°) Récupération de Glibc de synology : http://sourceforge.n...ts/dsgpl/files/ prendre sa version de DSM et son processeur. (j'ai un DS 212 pour info) Pour cela copier l'adresse du lien, et via un Putty :

mkdir /volume1/tmpLocale/

wget http://sourceforge.net/projects/dsgpl/files/DSM%204.0%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/

tar -zxvf  gcc421_glibc25_88f6281-GPL.tgz 

Maintenant il faut définir la langue, il nous faut les programme "locale" et "locatedef", donc pour les copier :


cp  /volume1/tmpLocale/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/bin/locale* /bin

maintenant les définitions de langue :


cp -R /volume1/tmpLocale/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/share/i18n/ /usr/share

une fois cela fait on verifie que ce que l'on a fait fonctionne, on regarde les langues installées :

locale -a

on rajoute la langue francaise :

localedef -i fr_FR -f ISO-8859-1 fr_FR

si vous avez un codedump, vous n'avais pas pris le bon locale /localedef pour votre processeur, ou dans l'archive le mauvais. J'ai installé un bootstrap perso et rajouter "locate" (un "updatedb" puis "locate localedef" fait des merveilles) Pour tester que tout cela fonctionne :


setlocale (LC_ALL, 'fr_FR');


$dateFormat = "2010-04-20";

$date = strftime("%A %d %B %Y",strtotime("$dateFormat")); 

print $date."\n";


$chaine = 'éàAsjklpqkéàjqsj^@ ?!/dhsqkdhq';  

$chaine = preg_replace('`([^\w\d\s;_\-]+)`iS', '', $chaine);

echo $chaine."\n"; // 


et le resultat attendu :


mardi 20 avril 2010

éàAsjklpqkéàjqsj dhsqkdhq

(noté le éà en resultat et le format de date en français)

inspiré de http://www.jfpblog.fr/index.php?post/2011/08/18/Add-Locale-to-synology-DSM3.1 (super lien)

Lien vers le commentaire
Partager sur d’autres sites

Sur mon ds210 j'ai du faire un un "mkdir -p /usr/lib/locale" préalable sous peine de

cannot create temporary file: No such file or directory
en réponse au localedef. Pas toi? Sinon, pour ma part je préfère travailler en UTF-8, plus universel, donc:
localedef -c -f UTF-8 -i fr_FR fr_FR.UTF-8

export LANG="fr_Fr.utf8"[/code]

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

cp  /volume1/tmpLocale/arm-none-linux-gnueabi/arm-none-linux-gnueabi/libc/usr/bin/locale*/bin[/CODE]

[color=#000000][size=2]Cette ligne copie le fichier locale et localedef qui sont des executables depuis l'archive telechargée vers le répertoire /bin, [/size][/color]

[color=#000000][size=2]si tu as eu cette erreur, c'est probablement que tu n'est pas dans le bon répertoire, celui qui contient les fichiers locale et localedef[/size][/color]

[color=#000000][size=2]Je n'utilise pas pour afficher la date, mais pour filtrer, je n'ai pas trouvé de filtre preg_replace qui permette un [a-zA-Z0-9] et les accents francais ..[/size][/color]

[color=#000000][size=2]avec le setlocale correct w donne bien les accents, sans non ;;;[/size][/color]

Modifié par gaspine
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.