Bonjour,

Je rencontre un soucis. j'ai besoin de transformer une variable string en float.
Quand je l'extrait d'une base de données, cela fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$var = "7.1";
$var_float  = floatval($var);
echo var_dump($var_float)."<br>";
Mais, quand je l'extrait d'un fichier, cela ne fonctionne plus (la variable a la même valeur dans les deux cas). Ou plutôt, elle est bien convertit (double) mais sa valeur passe à 0 ???????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
$file = fopen('http://script-php-livre-d-or.arizona-dream.com/version_livre_dor.txt','r');
 
while(!feof($file)){
    $line.=fgets($file,500); // Max 500 chars
}
preg_match_all('#<data[^>]*>.*</data>#i',$line,$resultat);
 
foreach ($resultat as $val){
    $derniere_version = $val[0];
    $date_version = $val[1];
    $log_version = $val[2];
}
 
 
$var_float = floatval($derniere_version);
echo gettype($var_float)."<br>";
echo $var_float."<br>";
Quelqu'un pourrait-il m'expliquer se mystère ????

PS : Je sais que je peux faire quelque chose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$var_float = (filter_var($derniere_version, FILTER_SANITIZE_NUMBER_INT));
Mais pour des raisons de compatibilité avec les versions inférieures à la 5.2 je ne peux utiliser filter_var