我正在整理一个搜索表格。我想为用户提供使用逻辑运算符进行搜索的选项。搜索查询示例:
red || ((green && pink))
!red && !green
正在搜索的数据存储在一个数组中。我有几种方法可以通过将搜索字符串切碎来提供此功能,但我想知道是否有人知道我之前可以使用的任何模块是从头开始编写代码?
我还应该提到,我知道围绕技术的安全问题,但我并不担心 SQL 注入等,因为这个工具不会在面向公众的服务器上。
考虑使用适当的 Lexer 或 PEG,例如php-peg或PHP_LexerGenerator,它允许您生成用于解析和验证此类用途的语法的代码。
您可能还想查看ANTLRWorks等工具,以帮助调试和创建语法。
你的问题有点含糊,但我认为 eval() 可以用来轻松解决你的问题,如果你不知道它会执行你作为字符串给出的代码。