PHP : Calcul opération contenue dans variable
jemsss
Messages postés
188
Date d'inscription
Statut
Membre
Dernière intervention
-
ben85350 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
ben85350 Messages postés 610 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne trouve pas comment calculer un opération enregistrée dans une variable en PHP.
Exemple :
Le texte contenue dans $operation est "1+2*3"
" echo $operation " me donne " 1+2*3 " or je voudrais qu'il affiche le résultat de l'opération : "7"
Savez-vous comment faire?
Merci d'avance
Je ne trouve pas comment calculer un opération enregistrée dans une variable en PHP.
Exemple :
Le texte contenue dans $operation est "1+2*3"
" echo $operation " me donne " 1+2*3 " or je voudrais qu'il affiche le résultat de l'opération : "7"
Savez-vous comment faire?
Merci d'avance
A voir également:
- Calcul php
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Easy php - Télécharger - Divers Web & Internet
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
8 réponses
Il ne faut pas mettre de guillemets.
Attention aussi à la division par 0.
$_POST['operation'] = '10+50*12'; if( preg_match('#^\d+[*/+-]{1}\d+([*/+-]{1}\d+)*$#', $_POST['operation']) ) { eval("\$resultat = {$_POST['operation']};"); echo "résulat de l'opération {$_POST['operation']} : $resultat"; } else { // format incorrect echo 'format non autorisé !'; }
Attention aussi à la division par 0.
Merci pour ta réponse,
Le problème c'est que l'opération est entrée par les interautes dans un formulaire. Donc je récupère les données et je les enregistre dans $operation.
Il doit bien y avoir une fonction ou une combine qui permet de transformer le texte d'une variable en opération. Mais je ne trouve pas.
Le problème c'est que l'opération est entrée par les interautes dans un formulaire. Donc je récupère les données et je les enregistre dans $operation.
Il doit bien y avoir une fonction ou une combine qui permet de transformer le texte d'une variable en opération. Mais je ne trouve pas.
Un eval() mais c'est vivement déconseillé pour des données saisies par un utilisateur.
Si tu t'en sers, il faut controler de manière stricte avec une expression régulière le format de la valeur reçue.
Si tu t'en sers, il faut controler de manière stricte avec une expression régulière le format de la valeur reçue.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci. Ok je vais essayer.
Les données ne sont pas directement saisie par l'utilisateur. Il n'y a pas des zone de texte mais des bouton pour tapé l'opération.
Les données ne sont pas directement saisie par l'utilisateur. Il n'y a pas des zone de texte mais des bouton pour tapé l'opération.
J'ai essayé mais ça ne marche pas
Voici le code employé
ou
Est-ce normal que ça ne marche pas ?
Ou y-a-t-il une autre solution ?
Voici le code employé
eval( "\$resultat = \"$operation\";" ); echo $resultat;
ou
$resultat = $operation; eval( "\$resultat = \"$resultat\";" ); echo $resultat;
Est-ce normal que ça ne marche pas ?
Ou y-a-t-il une autre solution ?
Bonjour tout le monde,
J'ai un petit soucis, j'ai une variable $an qui vaut "2009/2010" (équivalent à une année scolaire) :
$an = "2009/2010";
Le problème c'est que quand je veux enregistrer $an dans une base de donnée, elle prend la valeur de l'opération 2009 divisé par 2010 (0,99...), or je ne veut pas que ça soit interpreté comme une opération mais simplement comme une chaine.
Savez-vous commen faire cela?
Merci par avance.
J'ai un petit soucis, j'ai une variable $an qui vaut "2009/2010" (équivalent à une année scolaire) :
$an = "2009/2010";
Le problème c'est que quand je veux enregistrer $an dans une base de donnée, elle prend la valeur de l'opération 2009 divisé par 2010 (0,99...), or je ne veut pas que ça soit interpreté comme une opération mais simplement comme une chaine.
Savez-vous commen faire cela?
Merci par avance.