Die Auswertung mathematischer Ausdrücke, die in Strings eingebettet sind, ist eine häufige Anforderung in der Programmierung. In PHP erfordert das Erreichen dieser Aufgabe spezielle Ansätze, um potenzielle Sicherheitsrisiken zu vermeiden.
Viele Ressourcen empfehlen die Verwendung der Funktion eval(), um als Zeichenfolgen gespeicherte Ausdrücke auszuwerten. Allerdings stellt diese Methode ein erhebliches Sicherheitsrisiko dar, da sie die Ausführung beliebigen PHP-Codes ermöglicht. In der PHP-Dokumentation wird dringend von dieser Vorgehensweise abgeraten, es sei denn, dies ist unbedingt erforderlich.
Für einen sichereren Ansatz sollten Sie die Verwendung einer Parsing-Bibliothek in Betracht ziehen, die Infix-Ausdrücke in Postfix-Ausdrücke (umgekehrt) konvertiert Polnische Notation oder RPN). RPN-Löser können diese Postfix-Ausdrücke dann effizient auswerten, ohne dass eval() erforderlich ist.
Eine solche Bibliothek, eqEOS, bietet ein robustes Framework zum Parsen und Lösen von Gleichungen. Um es zu verwenden, instanziieren Sie die eqEOS-Klasse und rufen die MethodesolveIF() mit der Ausdruckszeichenfolge als Argument auf. Das Ergebnis wird zurückgegeben.
Um den Ausdruck „2-1“ mit eqEOS auszuwerten:
require_once "eos.class.php"; $eq = new eqEOS(); $result = $eq->solveIF("2-1"); echo $result; // Outputs: 1
Berücksichtigen Sie neben eqEOS auch diese alternativen Lösungen für mathematische Ausdrücke Auswertung:
Denken Sie daran, dass die Verwendung von eval() für die Ausdrucksauswertung a sein sollte Aufgrund der Sicherheitsaspekte ist dies jedoch der letzte Ausweg. Sichere und robuste Parsing-/Lösungsbibliotheken wie eqEOS bieten einen weitaus besseren Ansatz.
Das obige ist der detaillierte Inhalt vonWie kann ich mathematische Ausdrücke aus Strings in PHP sicher auswerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!