欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP删除当前目录及其目录下的所有文件

程序员文章站 2022-05-14 09:42:37
使用PHP遍历一个目录下的所有目录及文件,并删除该目录及其目录下的所有子目录和文件,本次代码通过递归的方式来实现。 用到的函数: scandir($path) 遍历一个目录下所有文件并返回数组。 unlink($filename) 删除文件。 rmdir($path) 只删除空文件夹。 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);
    }
}