PHP Auto Photo создать галерею: удалить миниатюры

Я использую галерею PHP, которая автоматически генерирует фотогалерею из каталога изображений.

http://davidwalsh.name/generate-photo-gallery

Я хотел бы изменить скрипт, чтобы добавить возможность очищать все миниатюры в папке thumbs после определенного пользователем интервала времени, скажем, 12 или 24 часа.

0

Решение

Лично я бы не использовал 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

1

Другие решения

Если вы пытаетесь регулярно удалять старые файлы, лучше всего использовать cron работа.

Тем не менее, я сделал что-то похожее, где после того, как пользователь скачал или просмотрел файл, я очищаю каталог.

в PHP:

array_map('unlink', glob("tempfiles/*"));

Где каталог находится в tempfiles. Вы можете использовать «* .jpg», чтобы удалить только изображения.

0

По вопросам рекламы [email protected]