Fonction php vérifiant syntaxe d'une fonction [Résolu/Fermé]

Signaler
Messages postés
189
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
28 novembre 2019
-
Messages postés
189
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
28 novembre 2019
-
Bonjour,
Je suis entrain de créer une calculatrice qui affiche les opérations entrer par les internautes.
Savez-vous s'il existe une fonction php qui permette de vérifier si la syntaxe d'une opération de mathématique est lisible par php.

Exemple :
$operation = "sprt(5*3*(2+2)"
Je veux vérifier si la syntaxe du contenu de '$operation' est lisible par php avant de l'éxécuter. Dans mon exemple non car j'ai écrit sprt au lieu de sqrt (racine carré) et en plus j'ai oublié de fermer une parenthèse.

Merci d'avance

jemsss

5 réponses

je pense que tu peux le faire comme ça :

if (is_numeric($operation)) {
      //l'opération est valide puisqu'elle renvoie une valeur numérique. Affichage du résultat par exemple
}
else {
     //l'opération n'estpas valide sa valeur n'étant pas numérique. affichage du message d'erreur
}
Messages postés
189
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
28 novembre 2019
16
Merci
C'est une combine pas mal à laquelle je n'est pas penser (sorry je débute)

existe-il une fonction php spécifique pour ça (ce serait plus court !!!)
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
Si une opération n'est pas comprise par php, php te sortira tout simplement un message d'erreur
Messages postés
189
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
28 novembre 2019
16
le problème c'est qu'il y aura de erreur de syntaxe régulièrement vu que ce sont les internaute qui entre la formule. Php affichera une belle page blanche avec un message d'erreur incompréhensible pour M. tout le monde. Je voudrais plutôt mettre une jolie message les invitant à corriger leur opération.
pour ne pas afficher l'erreur il te suffit de mettre @ avant ta fonction comme par exemple :
$string = @htmlentities($string);

et pour afficher le message d'erreur je pense que ce que je t'ai conseillé fonctionne
Messages postés
189
Date d'inscription
jeudi 28 août 2008
Statut
Membre
Dernière intervention
28 novembre 2019
16
ok
merci beaucoup pour tout ca. je vais essayer
jemsss