概要
phpのglob関数にはrecursiveがない為、機能が足りないことがあると思います。再帰を使った実装例もネット上には多々ありますが、車輪の再発明は避けたいので、composerを使います。
公式ドキュメント
https://github.com/gielfeldt/iterators
インストール
$ composer require gielfeldt/iterators
使い方
<?php
include __DIR__ . './vendor/autoload.php';
use Gielfeldt\Iterators\GlobIterator;
$iterator = new GlobIterator('/tmp/**.log');
var_dump(iterator_to_array($iterator));
注意点
glob文字列をコマンドライン引数で渡した場合、シェル側で展開されてしまい、期待通りの動作にならないことがあります。
必ず文字列として渡す点に注意してください。