您现在的位置是:网站首页 > 脚本编程>

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

2013-09-021449人围观
简介 <p style="text-indent:2em;"> 递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身...

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

函数的作用:删除目录下面的所有文件,并删除目录 
函数代码: 
<?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)把它删除 
 $dir='Public';//传入一个文件夹路径   
 deldir($dir);//调用函数   
 ?>  

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

打赏本站,你说多少就多少

精彩评论

微信关注

Copyright © 2013-2019 千奇博客 保留所有权利 辽ICP备13008238号