ftp_nb_fget()

Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле (PHP 4 >= 4.3.0, PHP 5)

Описание:

int ftp_nb_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] )

ftp_nb_fget() скачивает удалённый файл с FTP сервера.

Разница между этой функцией и ftp_fget() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.
Список параметров

ftp_stream - Идентификатор соединения с FTP сервером
handle - Открытый файловый дескриптор для сохранения данных.
remote_file - Путь к удалённому файлу.
mode - Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.
resumepos - Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Пример. Пример использования ftp_nb_fget()

<?php

// открыть файл для записи
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало скачивания
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// производим какие-то дествия ...
echo ".";

// продолжение скачивания ...
$ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
echo "При скачивании файла произолшла ошибка...";
exit(1);
}

// закрытие файла
fclose($fp);
?>