2014-12-06 69 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); ...

相關問題