站长资讯网
最全最丰富的资讯网站

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

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

php 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视频教程》

赞(0)
分享到: 更多 (0)

网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号