这个问题已经在这里有了答案: > How to evaluate formula passed as string in PHP? 2个
所以我有公式作为字符串
$comm =“(a x 5%-2%)”;
我希望它是$comm = $a * 5/100 *(1-2 / 100);
如何在php中做到这一点?
解决方法:
为了以正确的方式可靠,安全地从头开始执行此操作,您需要执行以下操作:
>词法分析,这涉及将输入与标记进行模式匹配:
(a x 5% - 2%)
将变成类似于以下令牌链的东西:
openparen variable multiply integer percent minus integer percent closeparen
>语法分析,这涉及获取这些标记并定义它们之间的关系,类似这样,以匹配标记的模式:
statement = operand operator statement
>然后,您将需要分析生成的语法树,以便您可以运行它并产生答案.
它看起来不会像$comm = $a * 5/100-2/100那样简单;但这将得出相同的结论.
某人可能已经解决了这个问题,这是我在简短的Google搜索后找到的两个:
PHP Maths Expression Parser,
And another.
这些SO问题也类似Smart design of a math parser?、Process mathematical equations in php