我需要评估一些逻辑表达式。在某些参数化后的表达式模板中,这些表达式可能如下所示:
$expr1 = '1 or 0 and not(0 or 0)';
$expr2 = "'editor' == 'editor' and not(0 = 1) and 10 > 5";
所以,我需要处理数字、字符串字面量,以及它们之间的逻辑和代数运算符和圆括号。
当使用 PHP eval 时,我还会获得不希望的不安全能力,比如系统函数调用等。
那么,有没有办法限制 PHP eval,或者可能有更好的解决方案呢?
谢谢!