| Pashkela |
11.04.2009 16:29 |
Копирует любые локальные файлы на сторонний фтп-сервер:
PHP код:
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$file = "имя_файла.mp3"; // Локальный файл, который копируем (абсолютный путь или просто название, если скрипт в этой же папке)
$newfile = '/http/имя_файла.mp3'; // Куда копируем (абсолютный путь на нашем ДРУГОМ сервере, фтп доступ)
$open = ftp_connect("фтп-сервер","21","100"); // сервер, порт, таймаут
if(!ftp_login($open,"фтп-логин","фтп-пароль"))
exit("Не могу соединиться");
# Копируем #
if (ftp_put($open, $newfile, $file, FTP_BINARY)) echo "$file скопирован\n";
else echo "Не удалось скопировать $file\n";
ftp_close($open); // закрываем фтп-соединение
?>
а вот так копирует целыми папками:
PHP код:
<pre>
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$l_folder = '/home/www/bla-bla-bla/http/s1/'; // Полный абсолютный путь к папке,
//которую тырим на наш фтп (в конце слеш)
$r_folder = '/http/s1/';// Полный абсолютный путь к папке,
//в которую будем копировать стыренное,
//находится на нашем фтп (в конце слеш).
//Должна быть создана заранее.
function ff($dir) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (filetype($dir . $file)=="file") // Если тип переменной - file
$arr[] = $file;
}
closedir($dh);
}
}
return $arr;
}
$b = ff($l_folder);
$count = count($b);
for ($i=0;$i<$count;$i++) {
$file = $l_folder.$b[$i]; // Файл, который копируем
$newfile = $r_folder.$b[$i]; // Файл приемник
$open = ftp_connect("фтп-сервер","21","100"); // сервер, порт, таймаут
if(!ftp_login($open,"фтп-логин","фтп-пароль"))
exit("Не могу соединиться");
# Копируем #
if (ftp_put($open, $newfile, $file, FTP_BINARY)) echo "$file скопирован\n";
else echo "Не удалось скопировать $file\n";
ftp_close($open); // закрываем фтп-соединение
}
?>
</pre>
не самый наверняка оптимальный вариант, но рабочий, проверил только что
|