Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Помощь] Php, Логика.... (https://forum.antichat.xyz/showthread.php?t=65715)

Isis 28.03.2008 19:06

[Помощь] 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

Цитата:

Сообщение от astrologer
т.е., проще говоря, название первого файла "cookies_33.txt" задаётся пользователем? Если нет, то по какому принципу он выбирается?

Можно поробывать выбрать по дате создания)

xcedz 28.03.2008 19:35

1 ищем первый файл в директории
2 находим
3 выполняем действия
сохраняем как cookies.txt
3 меняем имя файла через сутки ?
ищем дальше
если найденный файл не cookies.txt (может тут сделать случайный выбор файла в директории?) или это диапазон значений от cookies_0.txt
до cookies_n.txt? и из него делать выборку :D
=\ моск сдох

Ponchik 28.03.2008 19:38

А мне мысль про дату изменения понравилась :)
Токо так и не понял как 1 файл определять

life_is_shit 28.03.2008 19:58

0. получаем текущую дату (например в формате 26032008)
1. сканим диру на наличие файлов в цикле.
{
2. Если в имени файла есть строка "cookies" (допустим это наше условие файлов) и нет строки "26032008" то переходим в пункт 3.
3. Выполняем необходимые действия с файлом и переименовываем в "старое имя_26032008"
}

desTiny 28.03.2008 20:19

1) Создаём таблицу вида имяфайла -- дата последнего открытия.
2) Юзаем как очередь =)

Isis 28.03.2008 20:30

Вы не поняли......
У меня в файле куча файлов cookies_N.txt
Значение не изветно..если тока диру сканить..
Так вот..надо взять первый файл cookies_N.txt переименовать его в cookies.txt.
сделать действие, переименовать файл обратно ->
Для будущего перебора файлов я сделал формат перезаписи файлов такой:
PHP код:

<?php
$cookfil    
'cookies'.date("d"time()).'_'.$num.'.txt.';
?>

...

Дальше....надо найти второй файл cookies_n.txt и сделать теже действия!!!!!!!

Анжелика 28.03.2008 20:35

омфг, изос,что значит первый файл?
первый в дире или первый по числу n, или по дате создания?

MstDoc 28.03.2008 20:38

А зачем их вообще туда-обратно переименовывать?
Открыл, сделал, что надо, закрыл.

Анжелика 28.03.2008 20:42

ну мало ли что он задумал
проще будет не переименовывать, а копировать и потом удалять

Jairam 28.03.2008 20:50

Находит самый старый файл в папке, переименовывает в cookie.txt, а потом переименовывает обратно
точнее, не самый старый, а с наиболее ранним временем последнего изменения
вместо filectime можно наверное и filemtime, а может и что-нибудь ещё...

PHP код:

<?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

Цитата:

Сообщение от Isis
ммм...
Не могу понять и правильно сконструировать свои мысли и скрипт :)

Вообщем в папке есть файлы вида:



Так вот и скрипт который должен делать с этими файлами след.действие:

найти первый файл 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)
Функция сортирует как надо... .

xcedz 28.03.2008 21:34

ищем файл в директории
находим
сверяем дату создания файла с текущей датой
если разница = или более суток то
записываем имя файла в переменную
сохраняем как cookies.txt
выполняем над ним определенные действия действия
переименовываем обратно ( достаем имя из переменной)
ищем дальше
:D

Неее тут безпаллитры не разберешься Isis, пивка бы хоть ;)

Isis 29.03.2008 03:54

Я хотел от вас услышать это:
php.net/glob
Jairam, спасибо


Время: 13:45