Bonjour,
Quelqu'un saurait-il me dire s'il existe une façon en PHP d'évaluer
une expression telle "2*5+4" ?
Je m'attendrais à un résultat égal à 14 dans l'exemple ci-dessus. Une
méthode possible serait d'invoquer le calculateur bc (sous unix) mais
je me demandais s'il existait une façon propre à PHP de faire ce genre
de choses.
Merci,
Patrick
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Quelqu'un saurait-il me dire s'il existe une façon en PHP d'évaluer une expression telle "2*5+4" ?
Oui, mais très dangereuse si l'expression vient de l'extérieur.
http://fr.php.net/eval
Je m'attendrais à un résultat égal à 14 dans l'exemple ci-dessus. Une méthode possible serait d'invoquer le calculateur bc (sous unix) mais je me demandais s'il existait une façon propre à PHP de faire ce genre de choses.
Bien entendu, si $formule (provenant de l'extérieur) contient par exemple "system('rm -rf /')" tu n'auras plus qu'à réinstaller une sauvegarde complète après avoir exécuté ce code... Cela dit, si tu vérifies que tous les caractères de la chaîne sont dans [-+*/0-9()], c'est déjà moins risqué.
Quelqu'un saurait-il me dire s'il existe une façon en PHP d'évaluer
une expression telle "2*5+4" ?
Oui, mais très dangereuse si l'expression vient de l'extérieur.
http://fr.php.net/eval
Je m'attendrais à un résultat égal à 14 dans l'exemple ci-dessus. Une
méthode possible serait d'invoquer le calculateur bc (sous unix) mais
je me demandais s'il existait une façon propre à PHP de faire ce genre
de choses.
Bien entendu, si $formule (provenant de l'extérieur) contient par
exemple "system('rm -rf /')" tu n'auras plus qu'à réinstaller une
sauvegarde complète après avoir exécuté ce code... Cela dit, si tu
vérifies que tous les caractères de la chaîne sont dans [-+*/0-9()],
c'est déjà moins risqué.
Quelqu'un saurait-il me dire s'il existe une façon en PHP d'évaluer une expression telle "2*5+4" ?
Oui, mais très dangereuse si l'expression vient de l'extérieur.
http://fr.php.net/eval
Je m'attendrais à un résultat égal à 14 dans l'exemple ci-dessus. Une méthode possible serait d'invoquer le calculateur bc (sous unix) mais je me demandais s'il existait une façon propre à PHP de faire ce genre de choses.
Bien entendu, si $formule (provenant de l'extérieur) contient par exemple "system('rm -rf /')" tu n'auras plus qu'à réinstaller une sauvegarde complète après avoir exécuté ce code... Cela dit, si tu vérifies que tous les caractères de la chaîne sont dans [-+*/0-9()], c'est déjà moins risqué.
geantbrun
Merci Olivier pour ta réponse et merci surtout pour la précision concernant les précautions à prendre! Patrick
Merci Olivier pour ta réponse et merci surtout pour la précision
concernant les précautions à prendre!
Patrick