我正在寻找可以解释 php 中的字符串并执行简单的数学计算的东西,然后返回一个关于表达式是真还是假的布尔结果。
例如:
- 苏类型在“3*{mysalary}/9=10000”
- PHP 将其拆分为两个表达式 - explode('=',string);
- PHP 获取我的数据库字段列表,并用数据替换任何“{}”分隔的字段(类型转换为 int)
- 然后 PHP 计算数学表达式
- php 然后将左侧与右侧进行比较
- 产生的布尔结果。
它可能听起来很复杂,但它只需要非常简单。以下是约束: 1/ 数学运算符固定为:+ - / * 2/ 比较运算符固定为: = > < >= <= 3/ 不需要浮点比较,一切都可以在整数级别完成。因此,如果需要,可以对任何除法进行四舍五入,或者只是对最终结果进行四舍五入
永远只有两个表达式,一个比较运算符。如果有任何类型的错误,我们将返回 false。
有没有人见过可以做到这一点的东西?我知道我可以做点什么,但为什么要重新发明轮子呢?
如果您还没有看到任何东西,您是否愿意列出一些您在构建它时可以想到的“陷阱”或警告。
在阅读了更多内容后,我意识到我可以使用调车场算法。有没有人在 PHP 中实现了这个?
我知道 eval 可能是执行此操作的一种简单方法,但是,我担心用户可能很容易使用此方法破坏某些内容或导致语法错误。我宁愿不将它包含在解决方案中,或者如果我这样做了,那么它需要严格控制它的使用方式。
谢谢。
杰森