PHP でファイルとサブディレクトリを再帰的にリストする
指定されたディレクトリ内のすべてのサブディレクトリ、ファイル、サブフォルダをリストするのは一般的なタスクです。 PHP では、これは scandir() 関数を使用して実現できます。
次のディレクトリ構造があるシナリオを考えてみましょう:
<br>Main Dir<br> Dir1<br> SubDir1<br> File1<br> File2<br> SubDir2<br> File3<br> File4<br> Dir2<br> SubDir3<br> File5<br> File6<br> SubDir4<br> File7<br> File8<br>
あなたの目的は、すべてのリストを取得することです。
解決策
PHP は、ls のようなシェル スクリプト コマンドと直接同等のものを提供しません。ただし、PHP 関数を使用して再帰リストを実装できます。以下にサンプル コード スニペットを示します。
function listFolderFiles($dir){ $ffs = scandir($dir); unset($ffs[array_search('.', $ffs, true)]); unset($ffs[array_search('..', $ffs, true)]); if (count($ffs) < 1) return; echo '<ol>'; foreach($ffs as $ff){ echo '<li>'.$ff; if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff); echo '</li>'; } echo '</ol>'; }
使用法
次に示すように、処理するディレクトリ パスを指定して listFolderFiles() 関数を呼び出します。
listFolderFiles('Main Dir');
この関数は、ファイルとディレクトリ構造を表す階層的に編成された HTML リストを出力します。サブディレクトリもそれに応じてリストされます。
以上がPHP でファイルとサブディレクトリを再帰的に一覧表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。