/** * 处理单个文件的静态检测 * 输入PHP文件 * @param string $path */ function load_file($path) { $cfg = new CFGGenerator(); $cfg->getFileSummary()->setPath($path); $visitor = new MyVisitor(); $parser = new PhpParser\Parser(new PhpParser\Lexer\Emulative()); $traverser = new PhpParser\NodeTraverser(); $code = file_get_contents($path); $stmts = $parser->parse($code); $traverser->addVisitor($visitor); $traverser->traverse($stmts); $nodes = $visitor->getNodes(); $pEntryBlock = new BasicBlock(); $pEntryBlock->is_entry = true; //开始分析 $cfg->CFGBuilder($nodes, NULL, NULL, NULL); }