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服務器端清理無效軟連接php

相關文章
相關標籤/搜索