нужен простенький скрипт)

Discussion in 'PHP' started by noisia, 20 Mar 2008.

  1. noisia

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

    Joined:
    13 Mar 2007
    Messages:
    20
    Likes Received:
    10
    Reputations:
    0
    умя есь список фтп в таком виде
    ftp.user.com l:12345 p:1234
    надо что-бы меняло на
    log:p[email protected]
     
  2. demonoid

    demonoid Banned

    Joined:
    12 Jan 2007
    Messages:
    101
    Likes Received:
    111
    Reputations:
    27
    1 person likes this.
  3. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    PHP:
    <?php
    function rewrites($fn,$str)
    {
    if(
    file_exists($fn)): 
    $f=fopen($fn,w);
    for(
    $i=0;$i<=sizeof($str)-1;$i++):
    echo 
    '-> '.$str[$i].'<br>';
    fwrite($f,$str[$i]."\n");
    endfor;
    fclose($f);
    else: die(
    'not found: <b>'.$fn); endif;
    }
    $list=file('list.dat');
    for(
    $i=0;$i<sizeof($list);$i++)
     
    $massresult[]= str_replace(chr(13), "",chop(preg_replace('~([^\s]+) l:([^\s]+) p:([^\n]+)~''\\2:\\3@\\1'$list[$i])));
    rewrites('newlist.dat',$massresult);
    ?>
     
    #3 WVBR, 20 Mar 2008
    Last edited: 20 Mar 2008
  4. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    newlist.dat chmod-> соответствующий для записи
    и строчка
    $result=$login[1].':'.$pas[1].'@'.$tmp[0];
    не нужна ... зашпарился)
     
    1 person likes this.
  5. noisia

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

    Joined:
    13 Mar 2007
    Messages:
    20
    Likes Received:
    10
    Reputations:
    0
    Спасибо, только оно один файл из листа делает, а надо что-бы весь файл.
     
  6. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    кхм... чёт я не вразумил.. сори
    как понять - "делает один файл"
    а надо - "что-бы весь"
     
  7. noisia

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

    Joined:
    13 Mar 2007
    Messages:
    20
    Likes Received:
    10
    Reputations:
    0
    тоесть одну строчку из файла.
     
  8. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    WVBR, ты как-то всё усложнил
    $string - содержимое файла.
    Code:
    [COLOR=LightBlue]preg_replace('[COLOR=YellowGreen]~[COLOR=Wheat]([^\s]+)[/COLOR] l:[COLOR=Wheat]([^\s]+)[/COLOR] p:[COLOR=Wheat]([^\n]+)[/COLOR]~[/COLOR]', '[COLOR=YellowGreen][COLOR=Wheat]\\2[/COLOR]:[COLOR=Wheat]\\3[/COLOR]@[COLOR=Wheat]\\1[/COLOR][/COLOR]', [COLOR=Pink]$string[/COLOR])[/COLOR]
    Думаю, получить контент файла и записать в новый ты сможешь.
     
  9. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    NOmeR1, регулярки ещё плохо рулю ... =)
    noisia, исправленно
     
  10. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    файлы list.dat создавать будет new.dat если есть права или сам создай, вопрос конкретно не поняла, но вроде то что нужно))
    PHP:
    <?php
    $db    
    "list.dat";
    $ndb    fopen("new.dat","r+");
    $fn file($db);
    echo 
    "<table border=1>";
    for (
    $i=0$i<count($fn);$i++)
    {
    list (
    $aa,$bb,$cc) = explode (":",$fn[$i]);
        
    $cc str_replace("\n"," ",$cc);
        
    $cc str_replace("\r"," ",$cc);
    list (
    $dd,$ff,$ee) = explode (".",$aa);
    list (
    $gg) = explode (" ",$ee);
    list (
    $hh) = explode (" ",$bb);
    list (
    $cc) = explode (" ",$cc);
    if(!
    $ndb){echo "Error file 'new.dat'";}
    else
    {
    fputs ($ndb,$hh.':'.$cc.'@'.$dd.'.'.$ff.'.'.$gg."\n");
    echo 
    "<tr><td>".$hh."</td><td>".$cc."</td><td>@</td><td>".$dd.'.'.$ff.'.'.$gg."</td></tr>";
    }
    }
    fclose($ndb);
    echo 
    "</table>";
    ?>
     
  11. demonoid

    demonoid Banned

    Joined:
    12 Jan 2007
    Messages:
    101
    Likes Received:
    111
    Reputations:
    27
    Code:
    perl -pne "s;(.+) l:(.+) p:(.+);$2:$3\@$1;" ftp.txt > n_ftp.txt
    кто меньше ? :D
     
    1 person likes this.
  12. NNNS

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

    Joined:
    26 May 2007
    Messages:
    44
    Likes Received:
    28
    Reputations:
    -5
    Вот мой вариант
    PHP:
    <?php
    set_time_limit
    (0);
    $in "in.txt";  # Входной файл
    $out "out.txt";# Выходной файл

    function transFtp($in,$out) {
        
    $ftp file($in); # Помещаем содержимое файла в массив
        
    $fd  fopen($out"w");  # открываем файл для записи
        
    for($i=0;$i<count($ftp);$i++) { # Запускаем цикл
            
    if($ftp[$i] != "") {
                list(
    $url,$login,$pass) = explode(" "$ftp[$i]); # разбиваем элемент массива
                
    $login str_replace("l:","",$login);
                
    $pass  str_replace("p:","",$pass);
                
    $pass  str_replace("\r\n","",$pass);
                
    $newFtp$login.":".$pass."@".$url."\r\n"# Составляем шаблон
                
    fwrite($fd$newFtp); # записываем очередной аккаунт в файл
            
    }
        }
        
    fclose($fd); # закрываем файл
    }

    transFtp($in,$out); # вызываем функцию

    ?>
     
  13. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Ну тогда и мой. Там цикл не обязательно делать, а регулярки - это чудо)
    PHP:
    <?php
        
    // {
            
    $in  'file.txt';
            
    $out 'new_file.txt';
        
    // }
        
    $content file_get_contents($in);
        
    $content preg_replace('~([^\s]+) l:([^\s]+) p:([^\n]+)~''\\2:\\3@\\1'$content);
        
    $file fopen($out'w');
        
    fwrite($file$content);
        
    fclose($file);
    ?>
     
  14. WVBR

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

    Joined:
    14 Feb 2008
    Messages:
    45
    Likes Received:
    17
    Reputations:
    0
    NOmeR1, супер. только забыл удалитЬ непотребные аски символы (пробел возврат перевод каретки)