Простая верная версия:
$yesterday = date('Y-m-d', strtotime('yesterday')); // 2011-10-17
$day_before = date('Y-m-d', strtotime('2 days ago')); // 2011-10-16
$images = glob('*.jpg');
foreach($images as $img) {
if (strpos($img, $yesterday) === 0) || (strpos($img, $day_before) === 0)) {
continue;
}
unlink($img);
}
Это удалит все файлы с отметкой даты от 3 дней и старше, проверив, является ли файл отметкой даты вчера или позавчера.Но он также удалит все файлы, созданные сегодня.
Лучшей версией будет:
$images = glob("*.jpg");
foreach ($images as $img) {
$ctime = filectime($img);
if ($ctime < (time() - 86400 * 2)) {
unlink($img);
}
}
Эта версия проверяет фактическое время последнего изменения файла и удаляет все, что старше 48ч.Однако это будет медленнее, так как вызов stat (), выполняемый filectime (), будет недешевым вызовом.