Просмотр полной версии : [Помощь] Php, Логика....
ммм...
Не могу понять и правильно сконструировать свои мысли и скрипт :)
Вообщем в папке есть файлы вида:
cookies_12.txt
cookies_33.txt
cookies_35.txt
cookies_91.txt
cookies__1.txt
cookies__22.txt
cookies__69.txt
Так вот и скрипт который должен делать с этими файлами след.действие:
найти первый файл cookies_33.txt при этом в скрипте нигде не написано что первый файл это cookies_33.txt
Надо сразу переименовать этот файл в cookies.txt, далее кое-что в нем изменить, сделать некоторые действия с файлом(не важно какие) и далее переименовать файл так, чтобы дальше было удобно его использовать опять, но нельзя использовать 1 файл 2 раза за день..
Далее найти след.файл cookies_35.txt и сделать аналогичное...
Т.е. все действия в скрипте у меня проводятся над файлом cookies.txt, другие просто в него переименовываются и сохраняются заново...
Кто меня хорошо понял и поможет, у того жизнь будет ягодная..
Чмоке :)
astrologer
28.03.2008, 19:11
т.е., проще говоря, название первого файла "cookies_33.txt" задаётся пользователем? Если нет, то по какому принципу он выбирается?
Ergoproxy
28.03.2008, 19:13
т.е., проще говоря, название первого файла "cookies_33.txt" задаётся пользователем? Если нет, то по какому принципу он выбирается?
Можно поробывать выбрать по дате создания)
1 ищем первый файл в директории
2 находим
3 выполняем действия
сохраняем как cookies.txt
3 меняем имя файла через сутки ?
ищем дальше
если найденный файл не cookies.txt (может тут сделать случайный выбор файла в директории?) или это диапазон значений от cookies_0.txt
до cookies_n.txt? и из него делать выборку :D
=\ моск сдох
А мне мысль про дату изменения понравилась :)
Токо так и не понял как 1 файл определять
life_is_shit
28.03.2008, 19:58
0. получаем текущую дату (например в формате 26032008)
1. сканим диру на наличие файлов в цикле.
{
2. Если в имени файла есть строка "cookies" (допустим это наше условие файлов) и нет строки "26032008" то переходим в пункт 3.
3. Выполняем необходимые действия с файлом и переименовываем в "старое имя_26032008"
}
1) Создаём таблицу вида имяфайла -- дата последнего открытия.
2) Юзаем как очередь =)
Вы не поняли......
У меня в файле куча файлов cookies_N.txt
Значение не изветно..если тока диру сканить..
Так вот..надо взять первый файл cookies_N.txt переименовать его в cookies.txt.
сделать действие, переименовать файл обратно ->
Для будущего перебора файлов я сделал формат перезаписи файлов такой:
<?php
$cookfil = 'cookies'.date("d", time()).'_'.$num.'.txt.';
?>...
Дальше....надо найти второй файл cookies_n.txt и сделать теже действия!!!!!!!
Анжелика
28.03.2008, 20:35
омфг, изос,что значит первый файл?
первый в дире или первый по числу n, или по дате создания?
А зачем их вообще туда-обратно переименовывать?
Открыл, сделал, что надо, закрыл.
Анжелика
28.03.2008, 20:42
ну мало ли что он задумал
проще будет не переименовывать, а копировать и потом удалять
Находит самый старый файл в папке, переименовывает в cookie.txt, а потом переименовывает обратно
точнее, не самый старый, а с наиболее ранним временем последнего изменения
вместо filectime можно наверное и filemtime, а может и что-нибудь ещё...
<?php
$list=glob("files/*.txt");
$file_mod_time[-1]=9999999999;
for($i=0;$i<count($list);$i++)
{
$file_mod_time[$i]=filectime($list[$i]);
if($file_mod_time[$i]<$file_mod_time[$i-1])
{
$oldest_mod_time_file=$file_mod_time[$i];
$oldest_file=$list[$i];
}
}
echo"Oldest Unix time: $oldest_mod_time_file<br>
Oldest file name: $oldest_file<br>";
foreach ($list as $filename) {
echo "$filename size ".filesize($filename)." time ".filectime($filename)."<br>";
}
rename ("$oldest_file", 'files/cookie.txt');
// {...Действие...}
rename ('files/cookie.txt',"$oldest_file" );
?>
Buffalon
28.03.2008, 21:21
ммм...
Не могу понять и правильно сконструировать свои мысли и скрипт :)
Вообщем в папке есть файлы вида:
Так вот и скрипт который должен делать с этими файлами след.действие:
найти первый файл cookies_33.txt при этом в скрипте нигде не написано что первый файл это cookies_33.txt
Надо сразу переименовать этот файл в cookies.txt, далее кое-что в нем изменить, сделать некоторые действия с файлом(не важно какие) и далее переименовать файл так, чтобы дальше было удобно его использовать опять, но нельзя использовать 1 файл 2 раза за день..
Далее найти след.файл cookies_35.txt и сделать аналогичное...
Т.е. все действия в скрипте у меня проводятся над файлом cookies.txt, другие просто в него переименовываются и сохраняются заново...
Кто меня хорошо понял и поможет, у того жизнь будет ягодная..
Чмоке :)
Извините если не то начеркал:.... .
Я так понял тебе надо находить по возврастанию... .
Тык вроде есть такая функция которая правильно сортирует массив по возврастанию
то есть:
cookie_3
coolie_12
сookie_102.
cookie_3....coolie_12....сookie_102....
Cначала смотрим все .txt потом сортируем.... .
Могу начеркать побыстренькому....
Buffalon
28.03.2008, 21:31
Ну мля((... .void natsort(array &$buffalon)
Функция сортирует как надо... .
ищем файл в директории
находим
сверяем дату создания файла с текущей датой
если разница = или более суток то
записываем имя файла в переменную
сохраняем как cookies.txt
выполняем над ним определенные действия действия
переименовываем обратно ( достаем имя из переменной)
ищем дальше
:D
Неее тут безпаллитры не разберешься Isis, пивка бы хоть ;)
Я хотел от вас услышать это:
php.net/glob
Jairam, спасибо
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot