php递归删除目录,文件夹

php 递归删除目录(文件夹)下面举了两个实例,一个是删除单独的空目录代码,一个是批量删除目录文件夹的代码.

删除单个空文件夹,代码如下:

  1. $dir = 'www.phpfensi.com';
  2. if( is_dir( $dir ) ) //判断是否为目录
  3. {
  4. if( rmdir( $dir ) )
  5. {
  6. echo '目录删除成功';
  7. }
  8. else
  9. {
  10. echo '没有删除目录的权限';
  11. }
  12. }
  13. else
  14. {
  15. echo '不是一个有效的目录';
  16. }

下面来看一个批量递归删除目录的函数吧,代码如下:

  1. function deletedir($dir){
  2. if(!handle=@opendir($dir)){ //检测要打开目录是否存在
  3. die("没有该目录");
  4. }
  5. while(false !==($file=readdir($handle))){
  6. if($file!=="."&&$file!==".."){ //排除当前目录与父级目录
  7. $file=$dir .directory_separator. $file;
  8. if(is_dir($file)){
  9. deletedir($file);
  10. }else{
  11. if(@unlink($file)){
  12. echo "文件<b>$file</b>删除成功。<br>";
  13. }else{
  14. echo "文件<b>$file</b>删除失败!<br>";
  15. }
  16. }
  17. }
  18. if(@rmdir($dir)){
  19. echo "目录<b>$dir</b>删除成功了。<br> ";
  20. }else{
  21. echo "目录<b>$dir</b>删除失败!<br> ";
  22. }
  23. }

测试程序:

$dir="/var/www/test";

deletedir($dir);