我有一个文件夹,其中包含带有名称的文件
2014-01-28_backup.txt
2014-01-25_backup.txt
2014-01-26_backup.txt
2014-01-27_backup.txt
我想创建一个删除 3 天前文件的脚本,所以如果我在 2014 年 1 月 29 日运行脚本,它应该删除 26 之前的所有文件。我见过一个名为 glob 和 scandir 的函数,但不知道如何把它放进去
尝试这个,
$threeDbefore = date("Y-m-d", strtotime("-3 days"));
foreach(glob("path/to/files/*") as $file) {
if (!is_file($file)) {
continue;
}
$fileParts = explode('_', basename($file));
if(!empty($fileParts[0]) && $fileParts[0] <= $threeDbefore) {
unlink($file);
}
}
这也将在 3 天之前删除文件,而不仅仅是 3 天。即它将删除'2014-01-24_backup.txt
等2014-01-23_backup.txt
当然你的文件夹和文件必须有写权限(chmod 777
)
foreach (glob("path/to/files/*") as $file) {
if(substr(basename($file), 0, 10) <= date("Y-m-d",strtotime("-3 days")))
unlink($file);
}