PHP でサブディレクトリを読み取り、ファイルを反復処理する方法
サブディレクトリ内のファイルを反復処理するには、PHP の再帰反復子を利用できます。
Recursive Directory Iterator
RecursiveDirectoryIterator クラスを使用すると、ディレクトリ構造を再帰的に走査できます。各反復は、ファイルまたはディレクトリを表す新しい SplFileInfo オブジェクトを返します。
Recursive Iterator Iterator
RecursiveIteratorIterator クラスは RecursiveDirectoryIterator をラップし、ディレクトリを横断する便利な方法を提供します。
サンプル コード
これらのイテレータの使用方法を示すコード スニペットの例を次に示します。
<code class="php">$main = "MainDirectory"; $di = new RecursiveDirectoryIterator($main, RecursiveDirectoryIterator::SKIP_DOTS); $rii = new RecursiveIteratorIterator($di); foreach ($rii as $filename => $file) { // Do something with each file echo "$filename - {$file->getSize()} bytes\n"; }</code>
このコードMainDirectory の RecursiveDirectoryIterator を初期化し、現在のディレクトリと親ディレクトリ (. および ..) をスキップします。次に、RecursiveIteratorIterator を作成し、ディレクトリ ツリーを反復処理します。ファイルに遭遇するたびに、ファイル名とファイル サイズをエコーします。
注: 各ファイル部分での処理を変更して、各ファイルに対して必要な操作を実行できます。この例では、各ファイルのファイル名とサイズを単純に出力します。
以上がPHP でサブディレクトリを再帰的に読み取り、ファイルを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。