replacer un point par une virgule

replacer un point par une virgule - PHP - Programmation

Marsh Posté le 16-04-2007 à 20:43:28    

Bonjour,  
 
Je tente d'écrire une fonction preg_replace mais comme d'hab, je n'arrive pas.  
 
En fait, je récupère un prix de mysql sous la forme 17.3 par exemple, et je dois le transformer en 17,30...
 
Pour la virgule, je pensais à  :
 

Code :
  1. preg_replace('.', '\,', $in);


 
mais ce n'est pas la bonne solution. Concernant le 0 si le chiffre après le virgule ne comporte qu'un chiffre... je n'ai aucune idée.  
 
Est ce qu'une âme charitable pourrait me mettre sur les bonnes pistes ????
 
MERCI d'avance,

Reply

Marsh Posté le 16-04-2007 à 20:43:28   

Reply

Marsh Posté le 16-04-2007 à 20:50:56    

formatage directement en SQL, c'est pas possible ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 16-04-2007 à 21:32:37    

non, parce que la donnée que je récupère de SQL vient déjà sous la forme d'un SELECT champs1 * champs2 AS resultat...
 
De plus, ce que j'écris doit être une application à installer localement, donc moins je touche côté serveur, mieux c'est !

Reply

Marsh Posté le 16-04-2007 à 21:43:15    

preg_replace("#,#", '.', $in); ?


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 17-04-2007 à 01:09:20    

Et ça n'irait-il pas mieux: http://fr.php.net/number_format ?
Sinon plus simplement ya aussi http://fr.php.net/str_replace


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 17-04-2007 à 08:01:16    

number_format ( "3.7"  , 2  , ","  , "" );
 
-> 3,70
 
[:prodigy]

Reply

Marsh Posté le 17-04-2007 à 09:10:37    

Reply

Marsh Posté le 17-04-2007 à 09:16:43    

merci pour toutes ces réponses, je vais trouver mon bonheur dedand

Reply

Marsh Posté le 07-08-2019 à 19:42:13    

Je reprend le code:
 
"preg_replace('.', '\,', $in);"
C'est pas bon syntaxiquement parce qu'un motif d'expression régulière en PHP doit toujours commencer et se terminer par le même caractère n'apparaissant pas dans le reste de la chaine (par exemple $motif="@coucou@"; ou motif="&coucou&";
 
Ensuite, le "." a une signification en expression régulière, il signifie "n'importe quel caractère"
 
Donc remplace ton code par celui-ci "preg_replace('&\.&', ',', $in);
Et ça devrait marcher!!
 
Pour les caractères réservés en expression régulière, toujours le faire précédé par "\" (caractère d'échapement) pour l'identifier comme "caractère"!! Y compris \ lui même (pour identifier "\", le remplacer par "\\" );

Reply

Marsh Posté le 07-08-2019 à 19:46:17    

Bravo pour le déterrage. :o

Reply

Marsh Posté le 07-08-2019 à 19:46:17   

Reply

Marsh Posté le 08-08-2019 à 10:55:26    

oouch 12 ans après. ..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed