php 列出 文件中所有的function
在PHP中,可以使用token_get_all()函数来解析PHP代码,然后筛选出所有的函数定义。以下是一个简单的示例代码,用于列出指定文件中所有的函数名:
<?php function listFunctionsFromFile($filePath) { if (!file_exists($filePath)) { throw new Exception("文件不存在"); } $functions = array(); $tokens = token_get_all(file_get_contents($filePath)); for ($index = 0; $index < count($tokens); $index++) { if ($tokens[$index] === 'function') { $functionName = strtolower(token_name($tokens[($index + 1)][0])); if (in_array($functionName, array('_class', 'interfaces', 'uses'))) { // 跳过类定义中的函数 $index = $this->skipClassDefinition($tokens, $index); } else { $functions[] = $functionName; } } } return $functions; } function skipClassDefinition(&$tokens, $index) { $braceCount = 0; for (++$index; $index < count($tokens); $index++) { if ($tokens[$index] === '{') { $braceCount++; } elseif ($tokens[$index] === '}') { $braceCount--; if ($braceCount === 0) { break; } } } return $index; } // 使用示例 $functions = listFunctionsFromFile('your_file.php'); print_r($functions);
确保替换'your_file.php'为你想要检查的文件路径。这段代码会列出该文件中所有函数的名称。需要注意的是,这个解决方案不会处理命名空间和lambda函数。如果需要更复杂的处理,可能需要更复杂的解析逻辑。