在php中删除一个文件只需要使用 unlink() 函数即可,但如果想要删除一个指定的目录以及目录下的所有文件以及文件夹该如何去做呢?下面就列出几种常用的php删除目录或文件夹的自定义函数!

php删除目录文件夹的方法

方法1:

php可删除整个目录或目录下所有文件的自定义函数!

/**
* 删除目录及目录下所有文件或删除指定文件
* @param str $path 待删除目录路径
* @param int $delDir 是否删除目录,true删除目录,false 只删除文件保留目录和子目录
* @return bool 返回删除状态
*/
function delDir($path, $del = true){
    $handle = opendir($path);
    if ($handle) {
        while (false !== ($item = readdir($handle))) {
            if (($item != ".") && ($item != "..")) {
                is_dir("$path/$item") ? delDir("$path/$item", $del) : unlink("$path/$item");
            }
        }
        closedir($handle);
        if ($del) {
            return rmdir($path);
        }
    } elseif (file_exists($path)) {
        return unlink($path);
    } else {
        return false;
    }
}

方法2:

下面的php自定义删除文件夹函数示例代码,会直接删除文件夹,以及文件夹下的所有文件。

function deleteDir($dir){
    if (!$handle = @opendir($dir)) {
        return false;
    }
    while (false !== ($file = readdir($handle))) {
        if ($file !== "." && $file !== "..") {
            $file = $dir . '/' . $file;
            if (is_dir($file)) {
                deleteDir($file);
            } else {
                @unlink($file);
            }
        }
    }
    @rmdir($dir);
}