Maison >développement back-end >tutoriel php >Comment puis-je évaluer en toute sécurité des expressions arithmétiques de chaînes en PHP ?

Comment puis-je évaluer en toute sécurité des expressions arithmétiques de chaînes en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-07 04:17:10177parcourir

How Can I Safely Evaluate String Arithmetic Expressions in PHP?

Méthodes alternatives pour évaluer les expressions arithmétiques de chaînes

Bien que PHP ne dispose pas d'une fonction intégrée pour évaluer les expressions arithmétiques à partir de chaînes, il existe des solutions alternatives qui éliminent le besoin de procéder manuellement séparer les opérateurs et les opérandes.

infix à l'analyseur postfix (RPN) et RPN Solver

La classe EOS fournit un analyseur infixe pour convertir une expression telle que "2-1" en notation postfixée (RPN), qui est ensuite évaluée par le solveur RPN. Le code suivant démontre :

require_once "eos.class.php";
$eq = new eqEOS();
$result = $eq->solveIF("2-1");
echo $result; // Prints 1

Autres options

  • Wolfram|Alpha API : Une API qui peut évaluer des expressions mathématiques.
  • Sage : Un logiciel mathématique open source système.
  • Simple Parser : Un analyseur PHP de base pour évaluer des expressions simples.
  • phpdicecalc : Une bibliothèque PHP pour effectuer des lancers de dés et des calculs mathématiques. opérations.

Recommandation

Bien que eval reste une option pour l'évaluation de l'expression, elle est fortement déconseillée en raison des risques de sécurité. La classe EOS ou d'autres alternatives offrent des méthodes sécurisées et efficaces pour résoudre des expressions arithmétiques en PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn