| 
| 
 
| 
  
    | 
      
        | PHP中删除目录的三种方法  |  
        | 
          
            |  |  
            | 来源:互联网  作者:未知  发布时间:2008-01-04 |  
            |  |  |  
        
          | 
      PHP本身有一个rmdir()函数可以用来删除目录,不过要求必须是空目录,本文列举了三种方法。1、递规法;2、系统调用法;3、循环法 。  www.phperz.com       1、递规法:利用递归一层一层的删。
 
    
        
            | 以下为引用的内容: deleteDir($dir)
 {
 if (rmdir($dir)==false && is_dir($dir)) {
 if ($dp = opendir($dir)) {
 while (($file=readdir($dp)) != false) {
 if (is_dir($file) && $file!='.' && $file!='..') {
 deleteDir($file);
 } else {
 unlink($file);
 }
 }
 closedir($dp);
 } else {
 exit('Not permission');
 }
 }
 }
 |  phperz.com 
 2、系统调用法
 
    
        
            | 以下为引用的内容: function del_dir($dir)
 {
 if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
 $str = "rmdir /s/q " . $dir;
 } else {
 $str = "rm -Rf " . $dir;
 }
 }
 |  3、循环法
 
    
        
            | 以下为引用的内容: www~phperz~com 
 function deltree($pathdir)  {
 echo $pathdir;//调试时用的
 if(is_empty_dir($pathdir))//如果是空的
 {
 rmdir($pathdir);//直接删除
 }
 else
 {//否则读这个目录,除了.和..外
 $d=dir($pathdir);
 while($a=$d->read())
 {
 if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
 //如果是文件就直接删除
 if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
 {//如果是目录
 if(!is_empty_dir($pathdir.'/'.$a))//是否为空   www.phperz.com
 {//如果不是,调用自身,不过是原来的路径+他下级的目录名
 deltree($pathdir.'/'.$a);
 }
 if(is_empty_dir($pathdir.'/'.$a))
 {//如果是空就直接删除
 rmdir($pathdir.'/'.$a);
 }
 }
 }
 $d->close();
 echo "必须先删除目录下的所有文件";//我调试时用的
 }
 }
 function is_empty_dir($pathdir)
 {  php程序员站
 //判断目录是否为空
 $d=opendir($pathdir);
 $i=0;
 while($a=readdir($d))
 {
 $i++;
 }
 closedir($d);
 if($i>2){return false;}
 else return true;
 }  phperz~com
 |  php程序员之家 
 |  
          |  |  
          | [收藏此页] [打印本页] [返回顶部] |  |  
    |  |  |   
|  |   
|  |  |  |  |  |