умя есь список фтп в таком виде ftp.user.com l:12345 p:1234 надо что-бы меняло на log[email protected]
ftp.txt Code: ftp.user.com l:qwer p:11111 ftp.user.com l:qw123 p:1234 ftp.user.com l:qw123 p:4321 ftp.user.com l:q123 p:2314 Code: perl -ne "/(.+) l:(.+) p:(.+)/&&print \"$2\:$3\@$1\n"" ftp.txt > n_ftp.txt n_ftp.txt Code: qwer:[email protected] qw123:[email protected] qw123:[email protected] q123:[email protected]
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); ?>
newlist.dat chmod-> соответствующий для записи и строчка $result=$login[1].':'.$pas[1].'@'.$tmp[0]; не нужна ... зашпарился)
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] Думаю, получить контент файла и записать в новый ты сможешь.
файлы 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>"; ?>
Вот мой вариант 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); # вызываем функцию ?>
Ну тогда и мой. Там цикл не обязательно делать, а регулярки - это чудо) 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); ?>