OVH Cloud OVH Cloud

Zone numerique

3 réponses
Avatar
shad
Bonjour,

quelle fonction utiliser pour remplacer automatiquement dans un champs de
saisie, la virgule par le point pour que la valeur soit traitée comme du
numérique par PHP ?

str_replace() str_ireplace(), substr_replace(), ereg_replace(),
preg_replace() et strtr(). ??????

Je m'y perds un peu !

Merci pour vos lumières

3 réponses

Avatar
Thibaut Allender
shad wrote:

quelle fonction utiliser pour remplacer automatiquement dans un champs de
saisie, la virgule par le point pour que la valeur soit traitée comme du
numérique par PHP ?

str_replace() str_ireplace(), substr_replace(), ereg_replace(),
preg_replace() et strtr(). ??????


str_replace() suffit amplement

a+

--
freelance + web design + php dev + digital photo
+ http://www.capsule.org

Avatar
KEvin
Dans un message précédent shad nous a informé que
Bonjour,

quelle fonction utiliser pour remplacer automatiquement dans un champs de
saisie, la virgule par le point pour que la valeur soit traitée comme du
numérique par PHP ?

str_replace() str_ireplace(), substr_replace(), ereg_replace(),
preg_replace() et strtr(). ??????


je te conseille strtr qui est (un micro chouilla) plus rapide que
str_replace ....


--
KEvin

Avatar
Thibaut Allender
KEvin wrote:

je te conseille strtr qui est (un micro chouilla) plus rapide que
str_replace ....


c'est vrai si on utilise des une seule chaine, par exemple remplacer une
virgule par un point

par contre, ca n'est plus vrai quand on fait plusieurs remplacement.
voici un exemple qui prouve que str_replace devient alors plus rapide :

<?php
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

$machaine = "hi all, I said hello";
$trans = array("hello" => "hi", "hi" => "hello");

$trans1 = array("hello","hi");
$trans2 = array("hi","hello");

$time1 = getmicrotime();
for ($i=0;$i<100000;$i++) {
$new = strtr($machaine,$trans);
}
$time2 = getmicrotime();
print "<br><br>".($time2-$time1)."<br><br>";

$time1 = getmicrotime();
for ($i=0;$i<100000;$i++) {
$new = str_replace($trans1,$trans2,$machaine);
}
$time2 = getmicrotime();

print "<br><br>".($time2-$time1)."<br><br>";
?>

amusant n'est il pas ? ;)

--
freelance + web design + php dev + digital photo
+ http://www.capsule.org