我想知道是否可以使用PHP的解析器来解析文件并搜索/查找给定的函数调用。
例如,我想知道调用函数eval
的文件。我可以将find
与-exec
和一些正则表达式一起使用,但这会返回很多误报,并且还会返回注释代码。
我的问题是:我能以某种方式使用PHP自己的解析器来搜索文件,并说出该文件中是否使用了给定的函数/保留字?
答案 0 :(得分:2)
您可以使用PHP的内部标记生成器来查找对eval的直接调用:
<?php
$data = file_get_contents('test.php');
$tokens = token_get_all($data);
foreach($tokens as $token){
if($token[0]==T_EVAL){
echo "Eval found on line: ".$token[2]."\n";
}
}
如果您想查找其他内容,可以将常量从T_EVAL更改为此处指定的常量之一:Tokens