php删除超过1天的所有文件和文件夹

PHP   2024-12-12 09:53   74   0  

php函数删除超过1天的所有文件和文件夹

PHP函数删除超过1天的所有文件和文件夹可以使用以下步骤:

1. 获取指定目录下的所有文件和文件夹。

  • 使用scandir()函数获取指定目录下的所有文件和文件夹的名称列表。

  • 遍历文件和文件夹列表。

    • 使用foreach循环遍历文件和文件夹列表。

  • 判断文件类型。

    • 使用is_file()函数判断当前项是否为文件。

    • 使用is_dir()函数判断当前项是否为文件夹。

  • 删除超过1天的文件。

    • 使用filemtime()函数获取文件的最后修改时间。

    • 使用time()函数获取当前时间。

    • 判断当前时间与文件最后修改时间的差值是否大于1天。

    • 如果是,使用unlink()函数删除文件。

  • 递归删除超过1天的文件夹。

    • 对于文件夹,使用递归调用自身的方式进入文件夹。

    • 重复步骤2至步骤5,直到删除所有超过1天的文件和文件夹。

2. 示例代码:

function deleteFiles($dir) {
    $files = scandir($dir);
    
    foreach ($files as $file) {
        if ($file == '.' || $file == '..') {
            continue;
        }
        
        $path = $dir . '/' . $file;
        
        if (is_file($path)) {
            $modifiedTime = filemtime($path);
            $currentTime = time();
            $timeDiff = $currentTime - $modifiedTime;
            
            if ($timeDiff > 86400) { // 86400秒 = 1天
                unlink($path);
            }
        } elseif (is_dir($path)) {
            deleteFiles($path);
            rmdir($path);
        }
    }
}

$directory = '/path/to/directory';
deleteFiles($directory);

这段代码会递归地删除指定目录下超过1天的所有文件和文件夹。


3.每个2天清理一次文本日志信息

$modifiedTime = filemtime("rizhi.txt");
$currentTime = time();
$timeDiff = $currentTime - $modifiedTime;
if ($timeDiff > 172800) { // 86400秒=1天*2
    file_put_contents("rizhi.txt","");
}else{
    file_put_contents("rizhi.txt",$result."\r\n",FILE_APPEND);
}


参考:https://cloud.tencent.com/developer/information/php%E5%87%BD%E6%95%B0%E5%88%A0%E9%99%A4%E8%B6%85%E8%BF%871%E5%A4%A9%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9-video


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。