php专区

 首页 > php专区 > PHP高级 > 文件上传 > PHP实现递归循环每一个目录程序 - php文件操作

PHP实现递归循环每一个目录程序 - php文件操作

分享到:
【字体:
导读:
          要遍历一个文件夹里面的所有目录,列出里面所有的文件,PHP本身自带的有一个readdir的函数,不过只能读取当前的目录,根据这个函数,我写了另外...

PHP实现递归循环每一个目录程序

要遍历一个文件夹里面的所有目录,列出里面所有的文件,PHP本身自带的有一个readdir的函数,不过只能读取当前的目录,根据这个函数,我写了另外一个函数,用来实现我的需求,代码如下:

  1. class listdir{ 
  2. var $depth
  3. var $dirname
  4. var $list
  5. var $tostring
  6. function listdir($dir){ 
  7. $this->dirname=$dir
  8. $this->depth=0; 
  9. $this->tostring=”"; 
  10. //把结果保存进多维数组 
  11. function getlist($dir=”"){ 
  12. if($dir==”")$dir=$this->dirname; 
  13. $d=@dir($dir); 
  14. while(false!==($item=$d->read())) 
  15. if($item!=”.”&&$item!=”..”) 
  16. $path=$dir.”/”.$item
  17. if(is_dir($path)){ 
  18. $this->depth+=1; 
  19. $this->getlist($path); 
  20. }else
  21. $this->list[$this->depth][]=$item
  22. $this->list[$this->depth]['directory']=$dir
  23. $this->depth-=1; 
  24. $d->close(); 
  25. return $this->list; 
  26. //字符窜化结果 
  27. function tostring($dir=”"){ 
  28. if($dir==”")$dir=$this->dirname; 
  29. $d=@dir($dir); 
  30. $this->tostring.=”
      n”; 
    • $this->tostring.=”Directory:”.$dir.”n”; 
    • while(false!==($item=$d->read())) 
    • if($item!=”.”&&$item!=”..”) 
    • $path=$dir.”/”.$item
    • if(is_dir($path)){ 
    • $this->depth+=1; 
    • $this->tostring($path); 
    • }else
    • $this->tostring.=”
    • ”.$item.”
    • n”; 
    • $this->depth-=1; 
    • $d->close(); 
    • $this->tostring.=”
    n”; 
  31. return $this->tostring; 
  32. $wapdir=”jquery”; 
  33. $d=new listdir($wapdir); 
  34. echo $d->tostring(); 
  35. ?> 

要删除一个空的目录很简单~一个,rmdir() 函数就可以搞定,但是要删除一个非空目录,将不能进行快速的删除,必须先将目录中文件删除,但是目录里可能还会有子目录所以要进行递归删除~下面是我的例子~代码如下:

  1. <?php 
  2. function deletedir($dir){ 
  3.       if(!handle=@opendir($dir)){     //检测要打开目录是否存在 
  4.                die("没有该目录"); 
  5.       } 
  6.      while(false !==($file=readdir($handle))){ 
  7.                if($file!=="."&&$file!==".."){       //排除当前目录与父级目录 
  8.                             $file=$dir .DIRECTORY_SEPARATOR. $file
  9.                             if(is_dir($file)){ 
  10.                                   deletedir($file); 
  11.                             }else
  12.                                   if(@unlink($file)){ 
  13.                                          echo "文件$file删除成功。
    "
  14.                                   }else
  15.                                           echo  "文件$file删除失败!
    "
  16.                                  } 
  17.                 } 
  18.      } 
  19.     if(@rmdir($dir)){ 
  20.            echo "目录$dir删除成功了。
    n"
  21.     }else
  22.            echo "目录$dir删除失败!
    n"
  23.   } 
  24.  
  25. //测试程序 
  26. $dir="/var/www/test"
  27. deletedir($dir); 
  28. ?> 
分享到:
php删除文件程序代码 - php文件操作
php删除文件程序代码 在php中要删除文件我们需要使用php提供的unlink()文件删除函数,下面我来给大家详细介绍利用unlink删除文件的方法,有需要的朋友可参考本教程。 unlink(filename,context) 例代码如下: if (unlink($file_delete)) {  echo "The file was deleted success...
php文件删除unlink()详解 - php文件操作
php文件删除unlink()详解 在php中删除文件很简单只要使用unlink函数即可完成删除,如果要删除目录下所有文件我们需要利用递归操作目录进行删除,请记住从PHP文件创建的教训,我们创建了一个文件,名为testFile.txt,代码如下: $myFile = "testFile.txt";  $fh = fopen($myFile, &#03...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……