See our 标清搜索引擎 http://www.semanticdesigns.com/Products/SearchEngine。这是一个语言敏感的搜索引擎,旨在搜索大型代码库,具有针对 C、C++、Java、C#、COBOL、JavaScript、Ada、Python、Ruby 和许多其他语言的特殊语言分类器,包括您的特定目标语言 PHP ( PHP4 和 PHP5)。
我认为它可以满足您的所有要求。
它对语言元素进行索引,因此跨大型代码库的搜索速度非常快(Linux 内核 ~~ 750 万行 --> 2.5 秒)。 (索引步骤运行
在 Windows 上,但显示引擎是用 Java 编写的。)
搜索命中显示在单行上下文命中窗口中,其中显示文件和行号,以及突出显示命中的行。单击命中将显示源代码,选项卡会适当展开,即使对于具有奇数行计数规则的语言(例如 GCC WRT 表单字符),行计数也会正确,并突出显示命中行和命中文本。单击源窗口将启动您最喜欢的文件编辑器。
因为它理解语言元素,所以它忽略特定于语言的空白。它会跳过评论,除非您坚持要检查它们。因此,搜索会忽略空格、注释和行边界(如果语言认为行边界是空格,这就是存在特定于语言的扫描器的原因)。查询语言允许您指定所需的语言标记(引号中的特定标记,或通用标记,例如标识符 I、数字 N、字符串 S、运算符 O 和标点符号 P),并对标记值以及一系列代币。
您的搜索示例:
myTestFunction($parameter,$another_parameter,$yet_another_parameter){doThis();
对于搜索引擎来说将精确地表达为:
I=myTestFunction '(' I ',' I ',' I ')' '{' I=dothis '(' ')' ';'
但找到它可能会更容易(更少打字):
I=myTest* ... I=dothis
其中 I=myTest* 表示以以下开头的标识符myTest and ...意思是“附近”。
如果您坚持的话,搜索引擎还提供对文本的正则表达式搜索。
所以你仍然有类似 grep 的搜索(比索引搜索慢很多)
但也有命中窗口和源显示窗口。