[PHP] Question

tipitou -  
 le père -
Bonjour,

J'ai voulu, pour m'amuser, faire une petite calculatrice en php.

En fait l'utilisateur entre quelque chose du genre "5 + 3.5 / 2 + cos(36)" et le programme lui retourne la valeur.

Alors il faut vérifier la syntaxe de l'utilisateur. Ça, ça reste assez faisable pour une débutant comme moi, mais ensuite il faut traiter le calcul, donc avec les chaines de caractères et là ça devient du costaud !

Mais comme, en php, si on écrit par exemple: $resultat = 5 + 3.5 / 2 + cos(36);
Cela retourne la valeur dans la variable $resultat, je me demandais s'il est possible, à partir d'une chaine de caractère, de la transformer afin que ce soit comme si la chaine faisait partie du programme, afin de la mettre dans une variable.

J'espère que je suis assez clair.

Merci
A voir également:

3 réponses

swoog42 Messages postés 1178 Statut Membre 244
 
Tu dois exploser ta chaine pour trouver
1. les chiffres ou nombres
2. les opérateurs
3. les fonctions (genre cos., sin, e...)

Après, avec tout ca, tu range tout dans un tableau et tu traites au cas par cas.

Facile !
><
0
tipitou
 
Je me doute que j'ai à faire ça...

Mais je voulais savoir si on pouvait faire ce que j'ai demandé plus haut, ce qui serait plus rapide bien sur.

Enfin c'était juste pour savoir. :)
0
le père
 
Bonjour

Tu as la fonction eval() du PHP qui te fait ça.
https://www.php.net/manual/fr/function.eval.php
Mais attention ! C'est terriblement dangereux à utiliser : le client fait faire ce qu'il veut à ton script, puisque c'est le sien qui est exécuté. Tu dois donc obligatoirement vérifier ce qu'il te soumet. Et à mon humble avis, c'est très loin d'être simple, sauf bien sûr si tu t'en tiens à des expressions simples.
0