zoukankan      html  css  js  c++  java
  • php清理当前目录下的指定文件和空目录(源码),建议服务器端执行

    <?php
    /**
    * @desc 解析当前目录并递归删除目录下的指定文件 
    * @author mengdj<mengdj@outlook.com> 2014.10.02 1530
    */
    //定义脚本持续执行直到退出为止
    set_time_limit(0);
    ignore_user_abort(true);
    
    $global_filter=array("html","css","php","htm","txt","inc","js","vbs");
    $global_filter&&$global_filter=array_flip($global_filter);
    
    //获取文件后缀
    if(!function_exists("get_extension")){
        function get_extension($file){
            return substr($file,strrpos($file,'.')+1);
        } 
    }
    
    //递归删除空目录
    if(!function_exists("rm_empty_dir")){
        function rm_empty_dir($path){  
            if(is_dir($path) && ($handle = opendir($path))!==false){  
                while(($file=readdir($handle))!==false){     
                    if($file!='.'&&$file!='..'){  
                        $curfile = $path.'/'.$file;          
                        if(is_dir($curfile)){                
                            rm_empty_dir($curfile);          
                            if(count(scandir($curfile))==2){ 
                                echo ($curfile)." D<br/>";
                                @rmdir($curfile);
                            }  
                        }  
                    }  
                }  
                closedir($handle);  
            }  
        } 
    }
    
    //递归删除指定文件类型
    if(!function_exists("scan_dirs")){
        function scan_dirs($baseDir){
            global $global_filter;
            if($file_handler=opendir($baseDir)){
                while(($file=readdir($file_handler))!==false){
                       if($file!='.'&&$file!='..'){
                        if(!is_dir($baseDir."/".$file)){
                            if($file!="scan.php"&&array_key_exists(strtolower(get_extension($baseDir."/".$file)),$global_filter)){
                                echo $baseDir."/".$file."<br/>";
                                @unlink($baseDir."/".$file);
                                //检测是否为为空目录
                            }
                        }else{
                             $dirname = $baseDir."/".$file;
                             scan_dirs($dirname);
                        }
                       }
                  }
                  //判断目录是否为空
                rm_empty_dir($baseDir);
                closedir($file_handler);
            }
        }
    }
    
    $baseDir=".";
    isset($_GET['dir'])&&$baseDir=trim($_GET['dir']);
    scan_dirs($baseDir);
    ?>

    相关文档:php服务器端清理无效软链接

  • 相关阅读:
    Seven Puzzle Aizu
    Cheese
    Curling 2.0
    Ball
    Property Distribution
    Red and Black
    Lake Counting
    Ants
    剑桥雅思写作高分范文ESSAY20
    剑桥雅思写作高分范文ESSAY19
  • 原文地址:https://www.cnblogs.com/mengdejun/p/4008311.html
Copyright © 2011-2022 走看看