Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich eine als String in PHP übergebene mathematische Formel sicher auswerten?

Wie kann ich eine als String in PHP übergebene mathematische Formel sicher auswerten?

Barbara Streisand
Barbara StreisandOriginal
2025-01-03 06:29:42734Durchsuche

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

Wie wertet man eine Formel aus, die als String in PHP übergeben wird?

In PHP können Sie die Funktion eval() verwenden, um einen String als auszuwerten PHP-Code. Diese Funktion wird jedoch aus Sicherheitsgründen nicht empfohlen, da sie die Ausführung von Schadcode ermöglichen kann. Eine sicherere Alternative ist die Verwendung der Funktion „create_function()“, die eine Funktion aus einer Zeichenfolge erstellt.

Hier ist ein Beispiel dafür, wie Sie die Funktion „create_function()“ verwenden können, um einen mathematischen Ausdruck auszuwerten:

<?php
$expression = '2 + 2';
$fn = create_function('', "return ($expression);");
$result = $fn();
echo $result; // Output: 4

Dadurch wird der Wert des Ausdrucks ausgegeben, der 4 ist.

Eine andere Möglichkeit besteht darin, eine Bibliothek zu verwenden, die mathematische Ausdrücke sicher auswerten kann. Eine solche Bibliothek ist die EvalMath-Klasse, die unter [diesem Link](http://www.phpclasses.org/browse/package/2695.html) zu finden ist.

Hier ist ein Beispiel dafür, wie Sie kann die EvalMath-Klasse verwenden, um einen mathematischen Ausdruck auszuwerten:

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

Dadurch wird auch der Wert des Ausdrucks ausgegeben 4.

Für welche Methode Sie sich entscheiden, hängt von Ihren spezifischen Bedürfnissen ab. Wenn Sie eine einfache und benutzerfreundliche Lösung benötigen, ist die Funktion create_function() eine gute Option. Wenn Sie jedoch eine robustere und sicherere Lösung benötigen, ist die EvalMath-Klasse die bessere Wahl.

Das obige ist der detaillierte Inhalt vonWie kann ich eine als String in PHP übergebene mathematische Formel sicher auswerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Hallo von SymfonyNächster Artikel:Hallo von Symfony