[Помощь] Php, Логика....

Discussion in 'PHP' started by banned, 28 Mar 2008.

  1. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    ммм...
    Не могу понять и правильно сконструировать свои мысли и скрипт :)

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

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

    найти первый файл cookies_33.txt при этом в скрипте нигде не написано что первый файл это cookies_33.txt
    Надо сразу переименовать этот файл в cookies.txt, далее кое-что в нем изменить, сделать некоторые действия с файлом(не важно какие) и далее переименовать файл так, чтобы дальше было удобно его использовать опять, но нельзя использовать 1 файл 2 раза за день..
    Далее найти след.файл cookies_35.txt и сделать аналогичное...
    Т.е. все действия в скрипте у меня проводятся над файлом cookies.txt, другие просто в него переименовываются и сохраняются заново...

    Кто меня хорошо понял и поможет, у того жизнь будет ягодная..
    Чмоке :)
     
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    т.е., проще говоря, название первого файла "cookies_33.txt" задаётся пользователем? Если нет, то по какому принципу он выбирается?
     
  3. Ergoproxy

    Ergoproxy Elder - Старейшина

    Joined:
    18 Jan 2008
    Messages:
    248
    Likes Received:
    155
    Reputations:
    45
    Можно поробывать выбрать по дате создания)
     
  4. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    А мне мысль про дату изменения понравилась :)
    Токо так и не понял как 1 файл определять
     
  5. life_is_shit

    life_is_shit Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    300
    Likes Received:
    149
    Reputations:
    19
    0. получаем текущую дату (например в формате 26032008)
    1. сканим диру на наличие файлов в цикле.
    {
    2. Если в имени файла есть строка "cookies" (допустим это наше условие файлов) и нет строки "26032008" то переходим в пункт 3.
    3. Выполняем необходимые действия с файлом и переименовываем в "старое имя_26032008"
    }
     
  6. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    1) Создаём таблицу вида имяфайла -- дата последнего открытия.
    2) Юзаем как очередь =)
     
  7. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Вы не поняли......
    У меня в файле куча файлов cookies_N.txt
    Значение не изветно..если тока диру сканить..
    Так вот..надо взять первый файл cookies_N.txt переименовать его в cookies.txt.
    сделать действие, переименовать файл обратно ->
    Для будущего перебора файлов я сделал формат перезаписи файлов такой:
    PHP:
    <?php
    $cookfil    
    'cookies'.date("d"time()).'_'.$num.'.txt.';
    ?>
    ...

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

    Анжелика Elder - Старейшина

    Joined:
    25 Mar 2008
    Messages:
    25
    Likes Received:
    36
    Reputations:
    -4
    омфг, изос,что значит первый файл?
    первый в дире или первый по числу n, или по дате создания?
     
    3 people like this.
  9. MstDoc

    MstDoc Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    58
    Likes Received:
    15
    Reputations:
    19
    А зачем их вообще туда-обратно переименовывать?
    Открыл, сделал, что надо, закрыл.
     
  10. Анжелика

    Анжелика Elder - Старейшина

    Joined:
    25 Mar 2008
    Messages:
    25
    Likes Received:
    36
    Reputations:
    -4
    ну мало ли что он задумал
    проще будет не переименовывать, а копировать и потом удалять
     
  11. Jairam

    Jairam New Member

    Joined:
    26 Mar 2008
    Messages:
    7
    Likes Received:
    2
    Reputations:
    0
    Находит самый старый файл в папке, переименовывает в 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);

    ?>
     
    #11 Jairam, 28 Mar 2008
    Last edited: 28 Mar 2008
  12. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Извините если не то начеркал:.... .
    Я так понял тебе надо находить по возврастанию... .
    Тык вроде есть такая функция которая правильно сортирует массив по возврастанию
    то есть:
    cookie_3
    coolie_12
    сookie_102.

    cookie_3....coolie_12....сookie_102....
    Cначала смотрим все .txt потом сортируем.... .
    Могу начеркать побыстренькому....
     
    #12 Buffalon, 28 Mar 2008
    Last edited: 28 Mar 2008
  13. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Ну мля((... .void natsort(array &$buffalon)
    Функция сортирует как надо... .
     
  14. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Я хотел от вас услышать это:
    php.net/glob
    Jairam, спасибо