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