温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php中如何使用rmdir()删除非空目录

发布时间:2021-10-11 09:10:58 来源:亿速云 阅读:124 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关php中如何使用rmdir()删除非空目录,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

删除方法: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中如何使用rmdir()删除非空目录”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI