ディレクトリ内からファイルを選択するための再帰的なディレクトリ イテレータがあります。SKIP_DOTS を使用すると、「.」を無視できます。および「..」要素ですが、「__MACOSX」ディレクトリや「.cache.php」などの他の隠しファイルも無視できるようにしたいと思います
$iterator = new RecursiveDirectoryIterator($directory);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$all_files = new RecursiveIteratorIterator($iterator);
こことここに他の答えがありますが、よりクリーンな方法があるかどうか疑問に思いましたか?
PHP Manual - FilesystemIterator SetFlagsに何かがあることを期待していましたが、そうではないようです。