Recupera um arquivo do servidor FTP e grava-o em um arquivo aberto (sem bloqueio)

# ftp_nb_fget

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

ftp_nb_fget — Recupera um arquivo do servidor FTP e grava-o em um arquivo aberto (sem bloqueio)

### Descrição

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

ftp_nb_fget() recupera um arquivo remoto do servidor FTP.

A diferença entre esta função e ftp_fget() é que esta função recupera o arquivo de forma assíncrona, para que a aplicação possa realizar outras operações enquanto o arquivo está sendo recebido.

### Parâmetros

`ftp`
  Uma instância de FTP\Connection.
`stream`

  Um ponteiro de arquivo aberto no qual os dados serão armazenados.

`remote_filename`

  O caminho do arquivo remoto.

`mode`

  O modo de transferência. Deve ser `FTP_ASCII` ou `FTP_BINARY`.

`offset`

  A posição no arquivo remoto para iniciar o recebimento.

### Valor Retornado

Retorna `FTP_FAILED` ou `FTP_FINISHED` ou `FTP_MOREDATA`.

### Registro de Alterações

Versão | Descrição
--- | ---
8.1.0 | O parâmetro `ftp` agora espera uma instância de FTP\Connection; anteriormente, um resource era esperado.
7.3.0 | O parâmetro `mode` agora é opcional. Antigamente era obrigatório.

### Exemplos

Exemplo #1 Exemplo de ftp_nb_fget()

    <?php

    // abre um arquivo para gravação
    $file = 'index.php';
    $fp = fopen($file, 'w');

    $ftp = ftp_connect($ftp_server);

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

    // Inicia o recebimento
    $ret = ftp_nb_fget($ftp, $fp, $file, FTP_BINARY);
    while ($ret == FTP_MOREDATA) {

       // Faz alguma coisa
       echo ".";

       // Continua  o recebimento...
       $ret = ftp_nb_continue($ftp);
    }
    if ($ret != FTP_FINISHED) {
       echo "Houve um erro ao receber o arquivo...";
       exit(1);
    }

    // fecha o ponteiro do arquivo
    fclose($fp);
    ?>

### Veja Também

- ftp_nb_get() - Recupera um arquivo do servidor FTP e grava-o em um arquivo local (sem bloqueio)
- ftp_nb_continue() - Continua a receber/enviar um arquivo (sem bloquear)
- ftp_fget() - Recebe um arquivo do servidor FTP e salva em um arquivo aberto
- ftp_get() - Recebe um arquivo do servidor FTP

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