FTP_NB_GET(3)								 1							     FTP_NB_GET(3)

ftp_nb_get - Retrieves a file from the FTP server and writes it to a local file (non-blocking)

SYNOPSIS
int ftp_nb_get (resource $ftp_stream, string $local_file, string $remote_file, int $mode, [int $resumepos]) DESCRIPTION
ftp_nb_get(3) retrieves a remote file from the FTP server, and saves it into a local file. The difference between this function and ftp_get(3) is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded. PARAMETERS
o $ftp_stream - The link identifier of the FTP connection. o $local_file - The local file path (will be overwritten if the file already exists). o $remote_file - The remote file path. o $mode - The transfer mode. Must be either FTP_ASCII or FTP_BINARY. o $resumepos -The position in the remote file to start downloading from. RETURN VALUES
Returns FTP_FAILED or FTP_FINISHED or FTP_MOREDATA. EXAMPLES
Example #1 ftp_nb_get(3) example <?php // Initate the download $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) { // Do whatever you want echo "."; // Continue downloading... $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) { echo "There was an error downloading the file..."; exit(1); } ?> Example #2 Resuming a download with ftp_nb_get(3) <?php // Initate $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY, filesize("test")); // OR: $ret = ftp_nb_get($my_connection, "test", "README", // FTP_BINARY, FTP_AUTORESUME); while ($ret == FTP_MOREDATA) { // Do whatever you want echo "."; // Continue downloading... $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) { echo "There was an error downloading the file..."; exit(1); } ?> Example #3 Resuming a download at position 100 to a new file with ftp_nb_get(3) <?php // Disable Autoseek ftp_set_option($my_connection, FTP_AUTOSEEK, false); // Initiate $ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100); while ($ret == FTP_MOREDATA) { /* ... */ // Continue downloading... $ret = ftp_nb_continue($my_connection); } ?> In the example above, newfile is 100 bytes smaller than README on the FTP server because we started reading at offset 100. If we didn't disable FTP_AUTOSEEK, the first 100 bytes of newfile would be ''. SEE ALSO
ftp_nb_fget(3), ftp_nb_continue(3), ftp_fget(3), ftp_get(3). PHP Documentation Group FTP_NB_GET(3)