专注于WEB技术的IT博客

一个经典的PHP递归删除函数

时间:2012-11-26分类: php浏览:9016
分享到:

       递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行。


   我们来看一个经典的递归删除函数


   函数的作用:删除目录下面的所有文件,并删除目录

   函数代码:

<?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);//删除目录  
    }  
}  
?>

   使用实例:Public是一个文件夹,里面有许多文件夹和文件,调用deldir($dirname)把它删除

<?php  
$dir='Public';//传入一个文件夹路径  
deldir($dir);//调用函数  
?>

   说明:首先判断Public是否存在,如果在则打开Public,然后使用readdir循环读取Public目录里的内容,如果存在"."和".."这两个特殊目录则排除掉。如果遇到文件夹则调用自身处理,直到条件不满足。遇到文件则直接删除掉。最后层层跳出删除Public。

   

   


猜你喜欢
php面向对象之__autoload()
php面向对象之__call处理错误调用
php面向对象之__toString()
PHP面向对象之const常量修饰符
php面向对象之final的应用
php面向对象之克隆对象
PHP面向对象之对象和引用
php面向对象之类的静态成员
php面向对象之子类中重载父类的方法
php面向对象的访问类型控制
标签 : php 递归函数
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/52.html,谢谢。
  • 评论
  • 赞助本站