Evaluer une expression avec php

Mathiou -  
 Mathiou -
Bonjour,

j'ai un programme ou je recuper une expression sous forme de chaine de caractere,
mon souci est que je ne parvien pas a evaluer la chaine. ci-dessous l'exemple

$Expression = '300.00*2==140';

je veux donc calculer 300.00*2 puis faire le test d'égalité avec 140 pour recuperer true ou false

merci d'avance !

3 réponses

  1. Luxerails Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   41
     
    0
    1. Mathiou
       
      oui mais le probleme est que j'ai deja consulté le site mais je ne me suis pas encore tiré d'affaire
      0
  2. Luxerails Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   41
     
    Heu.. tu peux faire peut-être un truc dans le genre :
    $Expression = '300.00*2==140';
    eval('$resultat = ' . $Expression . ';'); // $resultat = true ou false


    Mais l'inconvénient est que si $Expression est modifiable par un visiteur, alors il peux éxécuter le php qu'il veut. Sinon, si tes conditions sont toujours sous la forme x*y==z tu peux facilement coder un truc dans le genre :

    $Expression = '300.00*2==140';
    $e = explode('==', $Expression);
    $c = (float) $e[1]; // 140.0
    $e = explode('*', $e[0]);
    $a = (float) $e[0]; // 300.00
    $b = (int) $e[1]; // 2
    if($a*$b==$c) /* vrai */
    else /* faux */
    
    0
  3. Mathiou
     
    Merci Luxerails,
    je me hate de tester ça, je crois que si ça réussi, ça aura réglé tout mon probleme
    0