php怎么删除目录

后端开发   发布日期:2023年05月18日   浏览次数:511

php怎么删除目录?这里还是不是想象的那种一个目录直接一个命令就删除了,PHP里的rmdir函数就只能删除空白目录,所以要换一种思路来解决这个问题,就是先删除目录下的子目录及文件,最后删除指定的文件夹目录才行。

PHP函数 rmdir():删除目录

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

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

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

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

【示例】使用 rmdir() 函数删除指定的目录。

  1. <?php
  2. $dir = './test';
  3. if(is_dir($dir)){
  4. if(rmdir($dir)) echo '目录删除成功!';
  5. }else{
  6. echo "目录不存在!";
  7. }
  8. ?>

运行上面的代码,首先要确定 test 目录是空的,否则就会出现下面的错误:

  1. Warning: rmdir(./test): Directory not empty in D:\WWW\index.php on line 4

如果要删除一个不为空的目录该怎么做呢?我们可以遍历这个目录下的所有文件和文件夹,并用递归的方式来逐个删除这个目录下的所有文件和文件夹,下面就通过示例代码来演示以下:

  1. <?php
  2. function deldir($path){
  3. //如果是目录则继续
  4. if(is_dir($path)){
  5. //扫描一个文件夹内的所有文件夹和文件并返回数组
  6. $p = scandir($path);
  7. //如果 $p 中有两个以上的元素则说明当前 $path 不为空
  8. if(count($p)>2){
  9. foreach($p as $val){
  10. //排除目录中的.和..
  11. if($val !="." && $val !=".."){
  12. //如果是目录则递归子目录,继续操作
  13. if(is_dir($path.$val)){
  14. //子目录中操作删除文件夹和文件
  15. deldir($path.$val.'/');
  16. }else{
  17. //如果是文件直接删除
  18. unlink($path.$val);
  19. }
  20. }
  21. }
  22. }
  23. }
  24. //删除目录
  25. return rmdir($path);
  26. }
  27. //设置需要删除的文件夹,目录以/结尾
  28. $path = "test/";
  29. //调用函数,传入路径
  30. deldir($path);
  31. ?>


以上就是php怎么删除目录的详细内容,更多关于php怎么删除目录的资料请关注九品源码其它相关文章!