ホームページ >バックエンド開発 >PHPの問題 >PHPでディレクトリ内のすべてのファイルを削除するにはどうすればよいですか?

PHPでディレクトリ内のすべてのファイルを削除するにはどうすればよいですか?

青灯夜游
青灯夜游オリジナル
2020-11-05 14:08:593002ブラウズ

php メソッドでディレクトリ内のすべてのファイルを削除します。最初に scandir() 関数を使用してディレクトリ内のすべてのファイルを走査し、配列を返します。次に、foreach を使用して配列を走査し、unlink() とforeach の rmdir() 関数を使用して、このディレクトリ内のすべてのサブディレクトリとファイルを削除します。

PHPでディレクトリ内のすべてのファイルを削除するにはどうすればよいですか?

プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !

php ディレクトリ内のすべてのファイルを削除します

PHP を使用して、ディレクトリ内のすべてのディレクトリとファイルを走査し、ディレクトリとそのディレクトリすべてを削除しますサブディレクトリとファイルでは、このコードは再帰的に実装されます。

主に使用される関数:

  • scandir($path) は、ディレクトリ内のすべてのファイルを走査し、配列を返します。

  • unlink($filename) ファイルを削除します。

  • rmdir($path) は空のフォルダーのみを削除します。

PHP コード:

/**
 * 删除当前目录及其目录下的所有目录和文件
 * @param string $path 待删除的目录
 * @note  $path路径结尾不要有斜杠/(例如:正确[$path='./static/image'],错误[$path='./static/image/'])
 */
function deleteDir($path) {

    if (is_dir($path)) {
        //扫描一个目录内的所有目录和文件并返回数组
        $dirs = scandir($path);

        foreach ($dirs as $dir) {
            //排除目录中的当前目录(.)和上一级目录(..)
            if ($dir != '.' && $dir != '..') {
                //如果是目录则递归子目录,继续操作
                $sonDir = $path.'/'.$dir;
                if (is_dir($sonDir)) {
                    //递归删除
                    deleteDir($sonDir);

                    //目录内的子目录和文件删除后删除空目录
                    @rmdir($sonDir);
                } else {

                    //如果是文件直接删除
                    @unlink($sonDir);
                }
            }
        }
        @rmdir($path);
    }
}

プログラミング関連の知識については、プログラミング入門をご覧ください。 !

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

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