Manual do PHP
Anterior |  | Próxima

# ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Obtém um arquivo do servidor FTP e salva em um arquivo local(sem bloquear)

## Descrição

int ftp_nb_get ( resource ftp_stream, string arquivo_local, string arquivo_remoto, int modo [, int resumepos])

ftp_nb_get() obtém o arquivo_remoto apartir do servidor FTP e o salva em arquivo_local no computador local. O modo de transferencia especificado deve ser `FTP_ASCII` ou `FTP_BINARY`. A diferença entre esta função e a função ftp_get() é que esta função obtém o arquivo sem sincronia, então o seu programa pode realizar outras operações enquando o arquivo esta sendo obtido.

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

Exemplo 1. ftp_nb_get() example
`<?php // Inicia o download $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) { // Faça o que quizer echo "."; // Continue o download... $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) { echo "Houve um erro no download do arquivo..."; exit(1); } ?>`

Exemplo 2. Continuando o download com ftp_nb_get()
`<?php // Começa $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY, filesize("test")); // OU: $ret = ftp_nb_get($my_connection, "test", "README", // FTP_BINARY, FTP_AUTORESUME); while ($ret == FTP_MOREDATA) { // Faça o que quizer echo "."; // Continue o download... $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) { echo "Houve um erro no download do arquivo..."; exit(1); } ?>`

Exemplo 3. Continuando um download na posição 100 para um novo arquivo com ftp_nb_get()
`<?php // Desabilita o Autoseek ftp_set_option($my_connection, FTP_AUTOSEEK, FALSE); // Começa $ret = ftp_nb_get($my_connection, "novo_arquivo", "LEIAME", FTP_BINARY, 100); while ($ret == FTP_MOREDATA) { /* ... */ // Continue o download... $ret = ftp_nb_continue($my_connection); } ?>`

No exemplo acima, `"novo_arquivo"` é 100 bytes menor do que `"LEIAME"` que esta no servidor FTP porque nós começamos a ler a partir da posição 100. Se nós não tivessemos desabilitado `FTP_AUTOSEEK`, os primeiros 100 bytes de `"novo_arquivo"` seriam '\0'.

Veja também ftp_nb_fget(), ftp_nb_continue(), ftp_get() e ftp_fget().

Anterior | Principal | Próxima
ftp_nb_fput | Acima | ftp_nb_put