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

使用PHP本身解析/查找函数调用,php,regex,parsing,Php,Regex,Parsing,我想知道是否可以使用PHP的解析器来解析文件和搜索/查找给定的函数调用 例如,我想知道从哪个文件调用函数eval。我可以将find与-exec和一些正则表达式一起使用,但这会返回大量误报,并且还会返回注释代码 我的问题是:我是否可以使用PHP自己的解析器在文件中搜索,并说明该文件中是否使用了给定的函数/保留字?您可以使用PHP的内部标记器查找对eval的直接调用: <?php $data = file_get_contents('test.php'); $tokens = token_ge

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

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


我的问题是:我是否可以使用PHP自己的解析器在文件中搜索,并说明该文件中是否使用了给定的函数/保留字?

您可以使用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";
        }
}

为什么不直接用
fopen()
打开它并搜索你的关键字呢?不是用regex。在PHP中,调用名为
$function
的函数的选项数不胜数<代码>调用用户函数
$function()
是最简单的them@ShankarDamodaran我不确定我是否理解你的建议。你能详细阐述一下你的想法吗?使用会更好approach@AlmaDo那些是角落里的箱子。如果我至少能接到直拨电话,我会非常高兴。另外,如果我正在使用PHP的解析器,应该可以(以某种方式)让它知道实际上有一个对我正在寻找的内容的调用D