Просмотр полной версии : нужен простенький скрипт)
умя есь список фтп в таком виде
ftp.user.com l:12345 p:1234
надо что-бы меняло на
log:pass@ftp.user.com
demonoid
20.03.2008, 22:41
ftp.txt
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
perl -ne "/(.+) l:(.+) p:(.+)/&&print \"$2\:$3\@$1\n"" ftp.txt > n_ftp.txt
n_ftp.txt
qwer:11111@ftp.user.com
qw123:1234@ftp.user.com
qw123:4321@ftp.user.com
q123:2314@ftp.user.com
<?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 - содержимое файла.
preg_replace('~([^\s]+) l:([^\s]+) p:([^\n]+)~', '\\2:\\3@\\1', $string)
Думаю, получить контент файла и записать в новый ты сможешь.
NOmeR1, регулярки ещё плохо рулю ... =)
noisia, исправленно
Flame of Soul
21.03.2008, 00:43
файлы list.dat создавать будет new.dat если есть права или сам создай, вопрос конкретно не поняла, но вроде то что нужно))
<?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>";
?>
demonoid
21.03.2008, 00:58
perl -pne "s;(.+) l:(.+) p:(.+);$2:$3\@$1;" ftp.txt > n_ftp.txt
кто меньше ? :D
Вот мой вариант
<?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
// {
$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);
?>
NOmeR1, супер. только забыл удалитЬ непотребные аски символы (пробел возврат перевод каретки)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot