Home  >  Article  >  Backend Development  >  Use PHP to traverse and delete a directory and all files stored in this directory

Use PHP to traverse and delete a directory and all files stored in this directory

little bottle
little bottleforward
2019-04-19 15:18:022874browse

This article mainly talks about using PHP to traverse all directories and files in a directory, and delete the directory and all subdirectories and files under the directory. This code is implemented recursively. Interested Friends, let’s find out.

Functions used:

scandir($path) traverses all files in a directory and returns an array.
unlink($filename) Delete the file.
rmdir($path) only deletes empty folders.

PHP code:

/**
 * 删除当前目录及其目录下的所有目录和文件
 * @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);
    }
}

Related tutorials:PHP video tutorial

The above is the detailed content of Use PHP to traverse and delete a directory and all files stored in this directory. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete