пэхопе

Discussion in 'PHP' started by rubik-nerubik, 7 Apr 2008.

  1. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    вообщем мне до этого человек помогал(/showthread.php?t=66234), но только это не то
    нужно следующее:
    1)открываем файл и ищем заданную конструкцию
    ......
    Nickname 240
    ......

    и после выдаем отдельно Nickname(ник может быть и с цифрами, кароче в случайном порядке) и 240(только цифры и длинна от 1 до 99999999).

    2)имея то что выше,(код) мы получили путь к файлу и после чего открываем допустим users\Nickname\240\mes.txt
    ######################mes.txt#####
    <td bgcolor='#D6E0BE'>&nbsp;&nbsp;secretservice:&nbsp;&nbsp; &quot;eeeeeeeee&quot;&nbsp;&nbsp;21:42 29.03.2008 [0]</td></tr> <tr><td bgcolor='#D6E0BE'><input type=checkbox value='ON'>&nbsp;&nbsp;<a href='users\240\1212'>Nickname</a>:&nbsp;&nbsp; &quot;<a href='index.php?page=message&opt=open&namemes=1212'>re</a>&quot;&nbsp;&nbsp;14:25 01.0102008 [0]</td></tr>
    ######################
    ищет выделнное и после чего далее ищет
    ищет циферку далее в [] и прибавляет один и сохраняет в тот же файл

    плиз... и если можно не в прег матч, так как я думаю будет нагрузка файл постоянно крутить. ведь так? допустим файл будет иметь размер в 1 мегабайт.
     
    #1 rubik-nerubik, 7 Apr 2008
    Last edited: 7 Apr 2008
  2. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    PHP:
    <?php
    preg_match
    ("#Nickname [0-9]+#is"file_get_contentы('1.txt'), $xek);
    echo 
    '<pre>';
    print_r($xek);
    echo 
    '</pre>';
    ?>
    Дальше сам найдешь...
     
    #2 banned, 8 Apr 2008
    Last edited: 8 Apr 2008
    1 person likes this.
  3. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Ися, ошибочка небольшая, надо #Nickname [0-9]+#is
     
    1 person likes this.
  4. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    и
    Code:
    file_get_content[COLOR=DarkOrange][B]s[/B][/COLOR]
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Ой ну придрались..
    Между прочим я специально =)
     
  6. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    И file_get_contentы тоже специально? =D
     
  7. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    Пусть будет))
     
  8. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Если честно, не понял, что точно надо.
    PHP:
    <?php
        
    // {
            
    $file 'file.txt';
        
    // }
        
    $astrologer file_get_contents($file);
        
    preg_match_all('~[^\n\s]+ [0-9]+~i'$astrologer$nomer1);
        foreach(
    $nomer1[0] as $isis) {
            
    $isis explode(" "$isis);
            
    $url 'users\\'.$isis[0].'\\'.$isis[1].'\mes.txt';
        }
    ?>
    В цикле переменная $url будет являться путём до users\Nickname\240\mes.txt. Дальше не понял, что делать.
     
  9. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    :D:D
     
  10. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Я догнал)
    Вот тебе скрипт рабочий
    PHP:
    <?php
        
    // {
            
    $file 'file.txt';
        
    // }
        
    $astrologer file_get_contents($file);
        
    preg_match_all('~[^\n\s]+ [0-9]+~i'$astrologer$nomer1);
        foreach(
    $nomer1[0] as $isis) {
            
    $green_bear explode(" "$isis);
            
    $url 'users\\'.$green_bear[0].'\\'.$green_bear[1].'\mes.txt';
            
    $old_contents file_get_contents($url);
            
    $contents preg_replace_callback(
                
    '~('.preg_quote($green_bear[0], '~').'</a>.+\[)([0-9]+)(\])~sU',
                
    create_function(
                    
    '$matches',
                    
    'return $matches[1].($matches[2] + 1).$matches[3];'
                
    ),
                
    $old_contents
            
    );
            if(
    $old_contents != $contents) {
                
    $fopen fopen($url'w') or die('Bad done');
                
    fwrite($fopen$contents) or die('Bad done');
                
    fclose($fopen);
            }
        }
        echo(
    'Well done');
    ?>
     
    #10 NOmeR1, 8 Apr 2008
    Last edited: 8 Apr 2008
    1 person likes this.