从php中的文件夹中删除3天的文件

时间:2014-01-28 21:04:16

标签: php glob unlink scandir

我有一个文件夹,其中包含名称为

的文件
2014-01-28_backup.txt
2014-01-25_backup.txt
2014-01-26_backup.txt
2014-01-27_backup.txt

我想创建一个删除3天旧文件的脚本,所以如果我在2014-01-29运行脚本,它应该删除26之前的所有文件。 我见过一个名为glob和scandir的函数,但不知道如何在

中得到它

2 个答案:

答案 0 :(得分:1)

当然,您的文件夹和文件必须具有写入权限(chmod 777

foreach (glob("path/to/files/*") as $file) {
    if(substr(basename($file), 0, 10) <= date("Y-m-d",strtotime("-3 days"))) 
    unlink($file);
}

答案 1 :(得分:1)

试试这个,

$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.txt2014-01-23_backup.txt