Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
745 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Problème de locales

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de locales

n°1149201
Deroma1
Posté le 17-07-2009 à 17:22:45  profilanswer
 

J'ai un problème étrange en PHP.
Avant ma migration de serveur, j'intégrais des fichiers textes en provenance d'un AS400 pour synchroniser la BDD d'un ERP.
 
$flo_prix = intval(trim(substr($str_line, 61, 17))) / 100000;
 
Ensuite je construisaise une requête avec cette valeur:
 
$str_query = 'REPLACE INTO prix SET tarif = "'.$str_code_tarif.'" ';
$str_query .= ', article = "'.$str_code_article.'"';
$str_query .= ', articlePere = "'.$str_code_pere.'"';
$str_query .= ', prix = '.$flo_prix.' ';
.....
 
$flo_prix s'écrivait dans ma chaine avec un point pour le séparateur de décimal. Sur le nouveau serveur (Debian 5.0 / Apache 2 / PHP5) quasi identique à l'original (version PHP et Debian différente) la chaine s'écrit avec une virgule et provoque une erreur SQL.  
Ce script est exécuté avec un cron en mode CLI.
 

Code :
  1. root# locale

me renvoie  

Code :
  1. LANG=fr_FR
  2. LC_CTYPE="fr_FR"
  3. LC_NUMERIC="fr_FR"
  4. LC_TIME="fr_FR"
  5. LC_COLLATE="fr_FR"
  6. LC_MONETARY="fr_FR"
  7. LC_MESSAGES="fr_FR"
  8. LC_PAPER="fr_FR"
  9. LC_NAME="fr_FR"
  10. LC_ADDRESS="fr_FR"
  11. LC_TELEPHONE="fr_FR"
  12. LC_MEASUREMENT="fr_FR"
  13. LC_IDENTIFICATION="fr_FR"
  14. LC_ALL=


 
Pour tester mes locales j'ai écrit un petit script
 

Code :
  1. #!/usr/bin/php
  2. <?php
  3. setlocale(LC_ALL, 'fr_FR@euro');
  4. print_r(localeconv());
  5. ?>


 
et
 

Code :
  1. #!/usr/bin/php
  2. <?php
  3. setlocale(LC_ALL, 'en_US ISO-8859-1');
  4. print_r(localeconv());
  5. ?>


 
me renvoie la même chose !!!
 

Code :
  1. Array
  2. (
  3.     [decimal_point] => ,
  4.     [thousands_sep] =>
  5.     [int_curr_symbol] => EUR
  6.     [currency_symbol] => EUR
  7.     [mon_decimal_point] => ,
  8.     [mon_thousands_sep] =>
  9.     [positive_sign] =>
  10.     [negative_sign] => -
  11.     [int_frac_digits] => 2
  12.     [frac_digits] => 2
  13.     [p_cs_precedes] => 0
  14.     [p_sep_by_space] => 1
  15.     [n_cs_precedes] => 0
  16.     [n_sep_by_space] => 1
  17.     [p_sign_posn] => 1
  18.     [n_sign_posn] => 1
  19.     [grouping] => Array
  20.         (
  21.             [0] => 3
  22.             [1] => 3
  23.         )
  24.     [mon_grouping] => Array
  25.         (
  26.             [0] => 3
  27.             [1] => 3
  28.         )
  29. )


 
Avec le séparateur de décimal en "," alors que je veux le "."
 
Quelqu'un a une explication !!!!??????????
 
Merci, Théolude

mood
Publicité
Posté le 17-07-2009 à 17:22:45  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Problème de locales

 

Sujets relatifs
problème désinstalation thème mac os x sur xp[Xorg] Problème config écran driver nvidia (en cours)
Enorme problème Phpmyadmin et debianProblème linux mandriva 2009 live cd
Problème de droits avec le serveur apache[DEBIAN] Problème de "locales", pas d'accents...
ubuntu (edgy) + applies GTK1 = problème : locales + polices hideuses.Ubuntu probleme de dependence ducoup plus de locales ...
Mandrake, problème de locales[ Polices de Caractères ] Problème de locales/polices avec mozilla
Plus de sujets relatifs à : Problème de locales


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR