[PHP] Question

Fermé
tipitou - 31 mars 2010 à 18:36
 le père - 31 mars 2010 à 22:11
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
31 mars 2010 à 18:42
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
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
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