Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Удалить файл

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Чт Фев 09, 2006 11:18 am    Заголовок сообщения: Удалить файл
Ответить с цитатой

Здравствуйте Денис!
У меня такой вопрос: мой сценарий создает файлы. Каждый созданый файл мне нужен всего несколько дней, а потом я удаляю его в ручную.
Как мне удалить с помощью РНР файлы, которые были созданы 5 дней назад?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Фев 09, 2006 11:30 am    Заголовок сообщения:
Ответить с цитатой

Для этого используйте функцию filectime, возвращающую дату создания файла, например,

$C = filectime('file.php");
echo date("d M Y H:i:s",$C);

потом сравниваете с текущей датой, если разница = 5 дней или более, удаляете файл (можно использовать unlink)

Вот и все Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Чт Фев 09, 2006 6:11 pm    Заголовок сообщения:
Ответить с цитатой

Денис, еще вопрос по этой теме.
Я не знаю имени файла. Имя генерируется автоматический. Можно ли использовать шаблон имени, например:

$C = filectime("директория/*.html?quot;);
echo date("d M Y H:i:s",$C);

и еще...
не могли бы превести пример как именно сравнивать даты создания файлов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Фев 09, 2006 6:58 pm    Заголовок сообщения:
Ответить с цитатой

Как именно генерируется имя файла?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Чт Фев 09, 2006 7:04 pm    Заголовок сообщения:
Ответить с цитатой

Я взял эту функцию с какого-то форума, она предназначина для генерации пароля, а я ее приспособил для генерации имени.
function generate()
{
$arr = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','V','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
$number = 7;
$pass = "";
for($i = 0; $i < $number; $i++)
{
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
}
$fileName=generate();
$ht=fopen("blanc/$fileName$num.html?quot;,"w+") or die("Ошибка, файл не создан!!!"); \\$num - это порядковый номер
fwrite($ht, $blanc);
fclose($ht);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пт Фев 10, 2006 5:26 am    Заголовок сообщения:
Ответить с цитатой

Я понял, имя файла у тебя случайное. Могу предложить следующие два варианта:
1) просто помещать все эти файлы в отдельный каталог, потом периодически его очищать
2) добавить к именам файла префикс, например, ff_dsfjhgerobs.php. Потом ищешь файлы по префиксу, сравниваешь даты и удаляешь ненужные файлы. У тебя есть моя книжка? Там есть пример поиска и вывода имен файлов. Только тебе вместо вывода нужно проанализировать дату и удалить.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Пт Фев 10, 2006 6:59 am    Заголовок сообщения:
Ответить с цитатой

Да, книжка есть. "Самоучитель РНР 5" 2-ое издание. Такой пример есть на стр. 273 (если конечно Вы его имели в виду), попробую переделать его под свои нужды. Спасибо за совет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пт Фев 10, 2006 7:14 am    Заголовок сообщения:
Ответить с цитатой

Да, именно его и имел в виду, если не получится, пиши, посмотрим вместе
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Boroda

Новенький


Зарегистрирован: 09.02.2006
Сообщения: 19
Откуда: Москва

СообщениеДобавлено: Пт Фев 10, 2006 9:47 am    Заголовок сообщения:
Ответить с цитатой

Все получилось. Спасибо Денис Вам и вашей книге.
Выкладываю эту функцию на форум, вдруг у кого из начинающих (как я Smile ) возникнет такая же потребность.

================================
function delFile(){
$segodnya=time();
$dir=opendir("blanc/");
chdir("blanc/");
while ($d=readdir($dir)){
$C = filectime("$d");
if ($segodnya-$C > 432000) unlink("$d");
}
closedir($dir);
}
================================
Важно!!! Эта функция удаляет абсолютно любые файлы, удовлетворяющие условию, а именно удаляет файлы из директории "blanc", которые были созданы 5 суток назад с момента запуска этой функции.
Во избежание недоразумений будьте БДИТЕЛЬНЫ!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис