PHP递归删除目录几个代码实例

下面给大家提供几个函数参考。

实例一:

复制代码 代码如下:


<?php 
function deletedir($dir){ 
      if(!handle=@opendir($dir)){     //检测要打开目录是否存在 
               die("没有该目录"); 
      } 
     while(false !==($file=readdir($handle))){ 
               if($file!=="."&&$file!==".."){       //排除当前目录与父级目录 
                            $file=$dir .DIRECTORY_SEPARATOR. $file; 
                            if(is_dir($file)){ 
                                  deletedir($file); 
                            }else{  //
                                  if(@unlink($file)){ 
                                         echo "文件<b>$file</b>删除成功。<br>"; 
                                  }else{ 
                                          echo  "文件<b>$file</b>删除失败!<br>"; 
                                 } 
                } 
     } 
    if(@rmdir($dir)){ 
           echo "目录<b>$dir</b>删除成功了。<br>\n"; 
    }else{ 
           echo "目录<b>$dir</b>删除失败!<br>\n"; 
  } 


//测试程序 
$dir="/var/www/test"; 
deletedir($dir); 
?> 

实例二:Php递归删除目录方法(兼容中文目录和文件)

复制代码 代码如下:


<?php
/*
本函数支持中文删除目录,由于我只测试了window下删除,linux未测试,如有问题可留言或者自己稍加修改即可。
如有错误欢迎大家指正,共同学习
*/
header("Content-type: text/html; charset=gb2312");

function delete_dir($tmp_path){

 
    if(!is_writable($tmp_path) && is_dir($tmp_path)){
        chmod($tmp_path,0777);
    }

    $encode = mb_detect_encoding($tmp_path, array('UTF-8','GB2312','ASCII','GBK'));
    $tmp_path = iconv($encode,'gb2312',$tmp_path);

 
    $handle_object = scandir($tmp_path);

 
    if(count(scandir($tmp_path))==2){

        if(rmdir($tmp_path)){
            echo $tmp_path.'<br />';
        }else{
            echo $tmp_path.'<br />';
        }

        return ;

    }

    foreach($handle_object as $val){       

        if($val!='..' && $val!='.' && $val!=''){

            if(filetype($tmp_path.'https://www.jb51.net/'.$val)=='dir'){

                if(count(scandir($tmp_path.'https://www.jb51.net/'.$val))==2){
                    if(rmdir($tmp_path.'https://www.jb51.net/'.$val)){
                        echo $$tmp_path.'https://www.jb51.net/'.$val.'<br />';
                    }else{
                        echo $$tmp_path.'https://www.jb51.net/'.$val.'<br />';
                    }
                }else{
                    delete_dir($tmp_path.'https://www.jb51.net/'.$val);
                }          
            }else{
                if(unlink($tmp_path.'https://www.jb51.net/'.$val)){
                    echo $$tmp_path.'https://www.jb51.net/'.$val.'<br />';
                }else{
                    echo $$tmp_path.'https://www.jb51.net/'.$val.'<br />';
                }
            }          
        }else{

            continue;
        }

    }

    
    if(rmdir($tmp_path)){
        echo $tmp_path.'<br />';
    }else{
        echo $tmp_path.'<br />';
    }

        return ;

    
}

delete_dir('D:/AppServ/www/testing/哈哈');

?>

实例三:参数$dir文件名例子:admin/runtime 这样的

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/dc4857e94c6a93838347ca7b7d56d666.html