Maison > développement back-end > tutoriel php > Comment évaluer en toute sécurité une formule mathématique passée sous forme de chaîne en PHP ?

Comment évaluer en toute sécurité une formule mathématique passée sous forme de chaîne en PHP ?

Barbara Streisand
Libérer: 2025-01-03 06:29:42
original
676 Les gens l'ont consulté

How to Safely Evaluate a Mathematical Formula Passed as a String in PHP?

Comment évaluer une formule passée sous forme de chaîne en PHP ?

En PHP, vous pouvez utiliser la fonction eval() pour évaluer une chaîne comme Code PHP. Cependant, cette fonction est déconseillée pour des raisons de sécurité, car elle peut permettre l'exécution de code malveillant. Une alternative plus sûre consiste à utiliser la fonction create_function(), qui crée une fonction à partir d'une chaîne.

Voici un exemple de la façon dont vous pouvez utiliser la fonction create_function() pour évaluer une expression mathématique :

<?php
$expression = '2 + 2';
$fn = create_function('', "return ($expression);");
$result = $fn();
echo $result; // Output: 4
Copier après la connexion

Cela affichera la valeur de l'expression, qui est 4.

Une autre option consiste à utiliser une bibliothèque capable d'évaluer en toute sécurité des expressions mathématiques. L'une de ces bibliothèques est la classe EvalMath, qui peut être trouvée sur [ce lien](http://www.phpclasses.org/browse/package/2695.html).

Voici un exemple de la façon dont vous peut utiliser la classe EvalMath pour évaluer une expression mathématique :

<?php
include('evalmath.class.php');
$m = new EvalMath;
$result = $m->evaluate('2 + 2');
echo $result; // Output: 4
Copier après la connexion

Cela affichera également la valeur de l'expression, qui est 4.

La méthode que vous choisissez d'utiliser dépend de vos besoins spécifiques. Si vous avez besoin d’une solution simple et facile à utiliser, alors la fonction create_function() est une bonne option. Cependant, si vous avez besoin d'une solution plus robuste et sécurisée, la classe EvalMath est un meilleur choix.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal