ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用してディレクトリ内のすべてのファイルとフォルダーを再帰的に一覧表示するにはどうすればよいですか?

PHP を使用してディレクトリ内のすべてのファイルとフォルダーを再帰的に一覧表示するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-02 12:37:17839ブラウズ

How Can I Recursively List All Files and Folders in a Directory Using PHP?

PHP によるディレクトリとファイルの再帰的走査

Q: を使用してディレクトリ内のすべてのファイルとフォルダを再帰的にリストするにはどうすればよいですか? PHP function?

A: ディレクトリとそのサブディレクトリを移動するには、次の手順に従います:

  1. PHP を定義する機能:

    function getDirContents($dir, &$results = array()) {
        $files = scandir($dir);
    
        foreach ($files as $key => $value) {
            $path = realpath($dir . DIRECTORY_SEPARATOR . $value);
    
            if (!is_dir($path)) {
                $results[] = $path;
            } else if ($value != "." && $value != "..") {
                getDirContents($path, $results);
                $results[] = $path;
            }
        }
    
        return $results;
    }
  2. ファイルとフォルダー:

    var_dump(getDirContents('/xampp/htdocs/WORK'));
  3. 出力:

    出力には、指定されたディレクトリ内のすべてのファイルとフォルダーのリストが含まれます。含む

元のコードの改善点:

  • 無限再帰の回避: 更新されたコードでは、次のことが保証されます。再帰はルート以外のディレクトリでのみ実行され、無限に実行されるのを防ぎます。ループ。
  • Use Realpath: realpath() は、シンボリック リンクを解決する項目の実際のパスを取得するために使用されます。
  • 結果を参照によって渡す: 反復ごとに配列がコピーされるのを避けるため、結果の配列は参照によって渡され、パフォーマンスが向上します。

以上がPHP を使用してディレクトリ内のすべてのファイルとフォルダーを再帰的に一覧表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。