Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в открытом заранее файле

# ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_fget — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в открытом заранее файле

### Описание

function ftp_nb_fget(
FTP\Connection `$ftp`,
resource `$stream`,
string `$remote_filename`,
int `$mode` = `FTP_BINARY`,
int `$offset` = 0
): int

Функция ftp_nb_fget() скачивает файл с удалённого FTP-сервера.

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

### Список параметров

`ftp`
  Экземпляр класса FTP\Connection.
`stream`

  Открытый файловый дескриптор для сохранения данных.

`remote_filename`

  Путь к удалённому файлу.

`mode`

  Режим передачи. Параметр принимает либо константу `FTP_ASCII`, либо константу `FTP_BINARY`.

`offset`

  Позиция начала загрузки в удалённом файле.

### Возвращаемые значения

Функция возвращает значения `FTP_FAILED`, `FTP_FINISHED` или `FTP_MOREDATA`.

### Список изменений

Версия | Описание
--- | ---
8.1.0 | Параметр `ftp` теперь принимает объект FTP\Connection; раньше параметр ждал ресурс (resource).
7.3.0 | Параметр `mode` сделали необязательным, раньше параметр был обязательным.

### Примеры

Пример #1 Пример скачивания файла с FTP-сервера в асинхронном режиме функцией ftp_nb_fget()

    <?php

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

    $ftp = ftp_connect($ftp_server);

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

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

       // Выполняем какие-то действия...
       echo ".";

       // Продолжение скачивания...
       $ret = ftp_nb_continue($ftp);
    }

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

    // Закрываем файл
    fclose($fp);

    ?>

### Смотрите также

- ftp_nb_get() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
- ftp_nb_continue() - Продолжает асинхронную операцию
- ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
- ftp_get() - Скачивает файл с FTP-сервера

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open