2014-12-06 23 views
0

我们有一个树遍历循环运行,可以很好地识别PHP文件,但是对于每个文件,我们运行PHP的FileReflection,它需要首先包含文件,包括。对于此脚本的目的,我们只对包含ClassInterfaceFunction声明的文件感兴趣。有没有办法在FileReflection()包含它之前验证文件是否包含类,接口或函数?

有没有一种方法来识别文件是否包括运行在其上include()ClassInterfaceFunction声明?

我的猜测是,它必须是get_file_contents()值的正则表达式,但我希望得到更优雅的(读取:一致和可靠的)解决方案。

回答

0

找到自己的答案,对于那些有兴趣...

$tokens = token_get_all(file_get_contents($file,TRUE)); $valid = FALSE; foreach($tokens as $token) { if (isset($token[0]) && in_array($token[0],array(T_CLASS,T_FUNCTION,T_INTERFACE))) { $valid = TRUE; break; } } if (!$valid) { return NULL; } include_once $file; $reflection = new FileReflection($file); ...

相关问题