php中rmdir删除非空目录程序代码

在php中rmdir是不能直接删除非空目录的,如果想利用rmdir来删除非空目录我们需要遍历目录然后来删除目录中的文件再删除目录的文件夹即可实现,rmdir() 函数删除空的目录,例代码如下:

  1. <?php
  2. $path = "images";
  3. if(!rmdir($path))
  4. {
  5. echo ("Could not remove $path");
  6. }
  7. else
  8. {
  9. echo '删除目录失败,因为images非空目录';
  10. }
  11. ?>

如果images是空目录可成功删除,如果非空目录就删除不了,代码如下:

  1. <?php
  2. // 说明: 删除非空目录的解决方案
  3. function removeDir($dirName)
  4. {
  5. if(! is_dir($dirName))
  6. {
  7. return false;
  8. }
  9. $handle = @opendir($dirName);
  10. while(($file = @readdir($handle)) !== false)
  11. {
  12. if($file != '.' && $file != '..')
  13. {
  14. $dir = $dirName . '/' . $file;
  15. is_dir($dir) ? removeDir($dir) : @unlink($dir);
  16. }
  17. }
  18. closedir($handle);
  19. return rmdir($dirName) ;
  20. }
  21. ?>