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

23 сентября 2017, 15: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    2999    0
+3

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

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