ftp_nb_fget

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

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

Descrição

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

Example #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