删除所有文件,包括子目录中超过3个月的PHP文件


Delete all files, including those within a sub-directory older than 3 months PHP

我在我的web服务器上有一个'cache'文件夹,其中存储。html文件,文件结构如下:

cache > user@gmail.com > several .html files.

我需要一个PHP脚本,将浏览用户文件夹内的所有子董事和删除超过3个月的文件。

到目前为止,我有这个脚本:

$DIR = '/cache/';
if ($handle = opendir($DIR)) {
    while (false !== ($file = readdir($handle))) {
        if ( filemtime($DIR.$file) <= time()-60*60*24*120 ) { //120 days?
           unlink($DIR.$file);
        }
    }
    closedir($handle);
}

但是它不处理子目录。它也给我错误,因为它试图解除链接目录..

更新:尝试添加计数功能:

<?php
rrmdir(/www/deletecontentsofthisfolder/);
echo $count . ' files deleted!';
function rrmdir($dir,$count=0) 
{
    if (is_dir($dir)) 
    {
        $objects = scandir($dir);
        foreach ($objects as $object) 
        {
            if ($object != "." && $object != "..") 
            {
                if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object,$count);
                if (filemtime($dir."/".$object) <= time()-60*60*24*120) @unlink($dir."/".$object); count++
            }
        }
        reset($objects);
        //rmdir($dir);
    }
return $count;
}
function rrmdir($dir) 
{
    if (is_dir($dir)) 
    {
        $objects = scandir($dir);
        foreach ($objects as $object) 
        {
            if ($object != "." && $object != "..") 
            {
                if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object);
                if (filemtime($dir."/".$object) <= time()-60*60*24*120) @unlink($dir."/".$object);
            }
        }
        reset($objects);
        //rmdir($dir);
    }
}