Manual do PHP
Anterior |  | Próxima

# ftp_nb_get

(PHP 4 >= 4.3.0)

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