Xwab
Форумыnavigate_nextПрограммирование на PHP

Удаления файлов из папки по времени
Сообщения
2x2

как это осуществить на пхп?можно с использованием крон!

28 Окт 2011, 19:42
Okula

Функция filemtime() показывает дату последнего изменения файла. от неё и пляши. можно и на крон поставить задание. скрипт эллементарный будет.

28 Окт 2011, 19:46
2x2

Okula, неплохо бы скриптик в zip буду благодарен!
Дам 30р больше нема!

29 Окт 2011, 3:48
reebest

<?php
$dir = "/tmp/";
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if(filemtime($file) > time()-259200){
unlink($file);
}
}
closedir($dh);
}
}
/* Будут удаляется все файлы из папки tmp, которые изменялись больше 3 суток назад */
?>


__________
посл.ред. 29 Окт 2011, 6:51; всего 1 раз 29 Окт 2011, 6:39
nitron

reebest, $dir = 'path/to/temp/directory/';
$array = array_diff(scandir($dir), array('.', '..'));
foreach($array as $element)
{
if(filemtime($dir.$element) < (time() - 360*24*3))
unlink($dir.$element);
}

29 Окт 2011, 6:48
reebest

Теперь в cron это
* 6 * * * тут полный путь до скрипта, включая /home/ и тп

т.е. крон каждой день в 6 часов будет запускать скрипт, который я дал, скрипт открывает директорию /tmp/, ищет файлы, которые изменялись последний раз трое суток назад, и удаляет их

29 Окт 2011, 6:50
2x2

Парне киньте зип или тхт файлик опера мини с ошибками копит и надо удалять файлы каждые 6часов если к ниму не обращались 6часов нафиг с хоста!очнь надо!

29 Окт 2011, 20:17
Pblcb

2x2, ты сам незнаешь что тебе надо

29 Окт 2011, 20:27
-ЙоЖеГ-

2x2, ну тогда если 6ч
$dir = 'path/to/temp/directory/';
 $array = array_diff(scandir($dir), array('.', '..'));
 foreach($array as $element)
 {
 if(filemtime($dir.$element) < (time() - 360*6))
 unlink($dir.$element);
 }

29 Окт 2011, 20:32
reebest

Как я понял, ему надо чтобы они удалялись, если их не открывали в браузере 6ч тогда удалятся, а все варианты выше удаляет файлы которые изменялись давно, так что все варианты выше не подходят

30 Окт 2011, 6:02
Ответить на тему