使用PHP本身来解析/查找函数调用

时间:2014-03-20 12:07:11

标签: php regex parsing

我想知道是否可以使用PHP的解析器来解析文件并搜索/查找给定的函数调用。

例如,我想知道调用函数eval的文件。我可以将find-exec和一些正则表达式一起使用,但这会返回很多误报,并且还会返回注释代码。

我的问题是:我能以某种方式使用PHP自己的解析器来搜索文件,并说出该文件中是否使用了给定的函数/保留字?

1 个答案:

答案 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