«

PHP删除目录下指定时间天数前的文件

时间:2024-3-3 10:49     作者:韩俊     分类: PHP


实现的功能及参考示例中包括:PHP删除目录及子目录下的文件(绝对路径或相对路径)、PHP判断目录是否有空、PHP获取文件的创建修改时间、PHP删除指定时间天数前的文件。

filemtime() 函数返回指定文件的修改时间。

filectime() 函数返回指定文件的创建时间。

注释:该函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

具体代码:

<?
date_default_timezone_set ("PRC");//设置时区

function is_empty_dir($pathdir) {
    //判断目录是否为空
    $d=opendir($pathdir); 
    $i=0; 
    while($a=readdir($d)){ 
        $i++; 
    } 
    closedir($d); 
    if($i>2){
        return false;
    }else{
        return true; 
    }
} 

function deldir($path){
        //如果是目录则继续
        if(!file_exists($path)){ 
            echo "目录不存在!!!";
            exit;
        }
        if(is_dir($path)){
            //扫描一个文件夹内的所有文件夹和文件并返回数组
            $p = scandir($path);
            //如果 $p 中有两个以上的元素则说明当前 $path 不为空
            if(count($p)>2){
                foreach($p as $val){
                    //排除目录中的.和..
                    if($val !="." && $val !=".."){
                        //如果是目录则递归子目录,继续操作
                        if(is_dir($path.$val)){
                            //子目录中操作删除文件夹和文件
                            deldir($path.$val.'/');
                        }else{
                            //如果是文件直接删除
                            echo "文件:".$path.$val.",创建时间:".date("Y-m-d H:i:s",filectime($path.$val))."<br />";

                            if (filectime($path.$val)<(time()-7*24*3600)){
                                echo "此文件早于7天前,将被删除:".$path.$val;
                                unlink($path.$val);
                            }

                        }
                    }
                }
            }
        }
        //删除目录(必须是空的,否则返回Directory not empty)

        if (is_empty_dir($path)===false){
            echo "错误:文件夹删除非空";
            exit;
        }else{
            //删除成功
            rmdir($path);
        }
}

//设置需要删除的文件夹

$path = "E:\\777\\";//删除的目录,绝对路径,以\\结尾
//$path = "777/";//删除的目录,相对路径,以/结尾

echo "被删除路径:".$path."<br />";

deldir($path);
?>

标签: php php教程

热门推荐