源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-10-01 01:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP递归删除目录几个代码实例
下面给大家提供几个函数参考。 [b]实例一:[/b]
[u]复制代码[/u] 代码如下:
<?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{  // www.1sucai.cn                                   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);  ?> 
[b]实例二:Php递归删除目录方法(兼容中文目录和文件)[/b]
[u]复制代码[/u] 代码如下:
<?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.'/'.$val)=='dir'){                 if(count(scandir($tmp_path.'/'.$val))==2){                     if(rmdir($tmp_path.'/'.$val)){                         echo $$tmp_path.'/'.$val.'<br />';                     }else{                         echo $$tmp_path.'/'.$val.'<br />';                     }                 }else{                     delete_dir($tmp_path.'/'.$val);                 }                       }else{                 if(unlink($tmp_path.'/'.$val)){                     echo $$tmp_path.'/'.$val.'<br />';                 }else{                     echo $$tmp_path.'/'.$val.'<br />';                 }             }                   }else{             continue;         }     }          if(rmdir($tmp_path)){         echo $tmp_path.'<br />';     }else{         echo $tmp_path.'<br />';     }         return ;      } delete_dir('D:/AppServ/www/testing/哈哈'); ?>
[b]实例三:参数$dir文件名例子:admin/runtime 这样的[/b]
[u]复制代码[/u] 代码如下:
//删除目录及所包含文件函数   function deldir($dir) {        //打开文件目录        $dh = opendir($dir);        //循环读取文件        while ($file = readdir($dh)) {            if($file != '.' && $file != '..') {                $fullpath = $dir . '/' . $file;       //判断是否为目录                if(!is_dir($fullpath)) {          echo $fullpath."已被删除<br>";                     //如果不是,删除该文件                    if(!unlink($fullpath)) {                                   }               } else {                    //如果是目录,递归本身删除下级目录                     deldir($fullpath);               }           }      }       //关闭目录        closedir($dh);      //删除目录     //if(rmdir($dir)) {       //    return true;   //    } else {        //    return false;     //  }   }
[b]实例四:[/b]
[u]复制代码[/u] 代码如下:
<?php  function deldir($dirname){      if(file_exists($dirname)){//首先判断目录是否有效          $dir = opendir($dirname);//用opendir打开目录          while($filename = readdir($dir)){//使用readdir循环读取目录里的内容           if($filename != "." && $filename != ".."){//排除"."和".."这两个特殊的目录              $file = $dirname."/".$filename;              if(is_dir($file)){//判断是否是目录,如果是则调用自身                  deldir($file); //使用递归删除子目录                }else{                @unlink($file);//删除文件              }            }          }              closedir($dir);//关闭文件操作句柄              rmdir($dirname);//删除目录      }  }  ?>
[b]实例五:[/b]
[u]复制代码[/u] 代码如下:
/**  * 删除非空目录  * @method rrmdir  */ function rrmdir ($dir) {     if (is_dir($dir)) {         $fs = array_slice(scandir($dir), 2);         foreach ($fs as $f) {             $path = $dir . '/' . $f;             is_dir($path) ? rrmdir($path) : unlink($path);         }         reset($fs);         return rmdir($dir);     } }
[b]实例六:[/b]
[u]复制代码[/u] 代码如下:
<?php function del_dir( $dir ) {   if ( $handle = opendir( $dir ) )   {     while ( false !== ( $item = readdir( $handle ) ) )     {       if ( $item != "." && $item != ".." )       {         if ( is_dir( "$dir/$item" ) )         {           del_dir( "$dir/$item" );         }         else         {           unlink( "$dir/$item" ) ;         }       }     }     closedir( $handle );     rmdir( $dir ) ;   } } ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部