• 技术文章 >后端开发 >PHP问题

    php rmdir()怎么删除非空目录

    青灯夜游青灯夜游2021-10-09 18:14:02原创177

    删除方法:1、利用scandir()函数和foreach语句遍历指定目录下的所有文件和文件夹;2、用递归的方式来逐个删除指定目录下的所有文件和文件夹,将该目录变成空目录;3、使用“rmdir(目录路径)”语句删除该指定目录。

    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

    在 PHP 中可以使用 rmdir() 函数来删除指定的目录,该函数的语法格式如下所示:

    rmdir(string $dirname[, resource $context])

    其中,参数 $dirname 为要删除的目录路径;$context 为可选参数,用来规定文件句柄的环境。

    注意:使用 rmdir() 函数删除指定目录时,这个目录必须是空的,而且要有相应的权限。函数执行成功时返回 TRUE,执行失败则返回 FALSE,如果删除一个不为空的目录还会产生一个 E_WERNING 级别的错误。

    那么如果需要使用rmdir()删除一个非空目录,这要怎么做?

    我们可以遍历这个目录下的所有文件和文件夹,并用递归的方式来逐个删除这个目录下的所有文件和文件夹,下面就通过示例代码来演示以下:

    <?php
        function deldir($path){
            //如果是目录则继续
            if(is_dir($path)){
                //扫描一个文件夹内的所有文件夹和文件并返回数组
                $p = scandir($path);
                //如果 $p 中有两个以上的元素则说明当前 $path 不为空
                if(count($p)>2){
                    foreach($p as $val){
                        //排除目录中的.和..
                        if($val !="." && $val !=".."){
                            //如果是目录则递归子目录,继续操作
                            if(is_dir($path.$val)){
                                //子目录中操作删除文件夹和文件
                                deldir($path.$val.'/');
                            }else{
                                //如果是文件直接删除
                                unlink($path.$val);
                            }
                        }
                    }
                }
            }
            //删除目录
            return rmdir($path);
        }
        //设置需要删除的文件夹
        $path = "./test/";
        //调用函数,传入路径
        deldir($path);
    ?>

    说明:

    scandir() 函数返回包含指定目录中所有文件和目录的数组,

    推荐学习:《PHP视频教程

    以上就是php rmdir()怎么删除非空目录的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:centos怎么查看是否安装了php 下一篇:php怎么过滤字符串只获取数字
    线上培训班

    相关文章推荐

    • php文件操作之检查文件是否可读/写/执行• php文件操作之如何获取文件的时间属性(信息)• php文件操作之如何一次性获得文件的全部数据• php文件操作之提取文件/目录的名称• php文件操作之去除给定路径的文件或目录

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网