ホームページ > バックエンド開発 > PHPチュートリアル > PHP でディレクトリとその内容を再帰的に削除するにはどうすればよいですか?

PHP でディレクトリとその内容を再帰的に削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-08 03:58:08
オリジナル
595 人が閲覧しました

How to Recursively Delete Directories and Their Contents in PHP?

PHP でのディレクトリとその内容の再帰的削除

PHP でディレクトリとその構造全体を削除するというタスクがある場合、多くの場合、再帰的アプローチが使用されます。求めた。これには、ターゲット ディレクトリ内のファイルだけでなく、ネストされたサブディレクトリとその内容も効率的にパージする必要があります。

解決策:

PHP マニュアルの rmdir に関するユーザー投稿セクションには、次の内容が記載されています。この再帰的削除の実際的な実装シナリオ:

function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (is_dir($dir . DIRECTORY_SEPARATOR . $object) && !is_link($dir . "/" . $object)) {
                    rrmdir($dir . DIRECTORY_SEPARATOR . $object);
                } else {
                    unlink($dir . DIRECTORY_SEPARATOR . $object);
                }
            }
        }
        rmdir($dir);
    }
}
ログイン後にコピー

仕組み:

  1. rrmdir() 関数は、指定された $dir がディレクトリであるかどうかを確認することから始まります。
  2. 次に、次を使用してディレクトリの内容を反復処理します。 scandir.
  3. 検出された各ファイルまたはサブディレクトリについて:

    • それがサブディレクトリ (「.」または「..」ではない) の場合、それが本物のサブディレクトリであるかどうかを確認します。 (リンクではありません) 再帰的に rrmdir() を呼び出してその内容を削除します。
    • それ以外の場合は、ファイルを直接削除します。
  4. 最後に、すべてのコンテンツが削除されたら、元のディレクトリ ($dir) が削除されます。

以上がPHP でディレクトリとその内容を再帰的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート