Удаление всех файлов кроме последних на PHP

23 сентября 2017, 17:19

Недавно было необходимо на сайте, где генерировались изображения с веб-камеры каждые 20 секунд, очищать всю эту папку за исключением последних 10 файлов. Было необходимо написать всё это в связке PHP + Cron, хотя Bash скрипт + Cron сделал бы это намного быстрее, но хозяин барин. В принципе к моменту написания скрипта на сайте было 9к изображений и на их удаление потребовалось чуть больше секунды, так что ощущения длительного процесса не замечено.

А вот собственно и сам скрипт:

<?php
$dir  = '/var/www/site.com/public_html/uploads'; // Указываем путь до папки с изображениями
$files = scandir($dir, SCANDIR_SORT_DESCENDING); // Получаем список файлов и сразу сортируем их по дате добавления
array_pop($files); // Удаляем точку
array_pop($files); // Удаляем две точки
 
$files = array_slice($files, 10); // Пропускаем первые 10 результатов массива
 
foreach($files as $key => $file) {
    unlink($dir.'/'.$file); // Удаляем файлы
}
SEQUEL.ONE
0    557    0
+3

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Топики

    Андрей Копп 03 октября 2018, 11:55
    Компоненты MODX Обзор компонента SEO Pro 0
    Андрей Копп 02 октября 2018, 11:18
    MODX Настройка MySQL 5.7 для работы pdoTools 0
    Андрей Копп 27 сентября 2018, 20:49
    MODX MinifyX в Fenom 0
    Андрей Копп 01 июля 2018, 15:13
    Другое Fenom в MODX (шпаргалки) 0

    Комментарии

    Андрей Копп 02 октября 2018, 09:04
    ComboBox с данными из другой таблицы modExtra 1
    Андрей Копп 08 сентября 2017, 20:24
    Всевозможная очистка кэша в Laravel 5 1