Я использую галерею PHP, которая автоматически генерирует фотогалерею из каталога изображений.
http://davidwalsh.name/generate-photo-gallery
Я хотел бы изменить скрипт, чтобы добавить возможность очищать все миниатюры в папке thumbs после определенного пользователем интервала времени, скажем, 12 или 24 часа.
Лично я бы не использовал glob
как одна ошибочная ошибка в коде, и вы можете в конечном итоге удалить не только указанные файлы … Если вы жестко закодируете это, вы должны быть в безопасности …
Использование задания cron также является другой идеей, но обычно общие хосты не позволяют им, если это то, что вы используете. Но я бы порекомендовал задание cron, которое выполняется, скажем, каждый час и удаляет все файлы с отметкой времени старше 12/24 часов. ,
Пример сценария с использованием GLOB
<?php
$files = glob("thumbnailsfolder/*");
$now = time();
foreach ($files as $file)
if (is_file($file))
if ($now - filemtime($file) >= 60*60*24*2) // 2 days
unlink($file);
?>
Использование DirectoryIterator — мои личные предпочтения
<?php
foreach (new DirectoryIterator("thumbnailsfolder") as $fileInfo) {
if ($fileInfo->isDot()) {
continue;
}
if (time() - $fileInfo->getCTime() >= 1*24*60*60) {
unlink($fileInfo->getRealPath());
}
}
?>
Примеры взяты из Правильный способ удалить все файлы старше 2 дней в PhP
Если вы пытаетесь регулярно удалять старые файлы, лучше всего использовать cron
работа.
Тем не менее, я сделал что-то похожее, где после того, как пользователь скачал или просмотрел файл, я очищаю каталог.
в PHP:
array_map('unlink', glob("tempfiles/*"));
Где каталог находится в tempfiles. Вы можете использовать «* .jpg», чтобы удалить только изображения.