这个问题已经在这里有了答案: > 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。