我需要在一些 PHP 页面上评估任意复杂的用户自定义逻辑表达式。假设表单字段是主要变量,则需要:
- 用字段值替换“变量”;
- 通过符号,名称(如eq,lt,le,ge,gt)处理比较运算符,最少包括==,<,<=,>= 和 >;
- 通过名称、符号(如!,&&,|| 和 ^^)处理布尔运算符not、and、or和可能的xor;
- 处理字符串和数字的字面值;
- 是纯文本而不是XML(例如,“firstname ==''or lastname ==''”);并且
- 具有合理的性能。
以前我写过递归下降解析器,可以构建表达式树并执行此类操作,但我不想在 PHP 中进行这项任务,因此我希望有一些现成的内容可以为我提供部分帮助。
有什么建议吗?