php递归删除文件夹

来源 http://newmiracle.cn/?p=2904

    function deldir($path)
    {

        //如果是目录则继续
        if (is_dir($path)) {

            //扫描一个文件夹内的所有文件夹和文件并返回数组
            $p = $this->my_scandir($path);
         
            foreach ($p as $val) {
              
                //如果是目录则递归子目录,继续操作
                if (is_dir($path . $val)) {
                    //子目录中操作删除文件夹和文件
                    $this->deldir($path . $val . '/');
                    //目录清空后删除空文件夹

                    @rmdir($path . $val . '/');
              
                } else {
                    //如果是文件直接删除
                    unlink($path . $val);
                }
            }

        }
    }


    function my_scandir($dir)
    {
        if (!is_dir($dir)) {
            $errmsg = '文件夹不存在';
            echo '<script>alert("' . $dir . $errmsg . '")</script>';
            echo $dir . $errmsg;
            exit();
        }
        $filearray = array();
        $handler   = opendir($dir);
        while (($filename = readdir($handler)) !== false) {
            if ($filename != "." && $filename != "..") {

                $filearray[] = $filename;
            }}
        closedir($handler);
        return $filearray;

    }
原文地址:https://www.cnblogs.com/6min/p/10837678.html