ftp_nb_get
(PHP 4 >= 4.3.0)
ftp_nb_get -- Retrieves a file from the FTP server and writes it to a local file (non-blocking)
Description
bool
ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])
ftp_nb_get() retrieves remote_file
from the FTP server, and saves it to local_file
locally. The transfer mode specified must
be either FTP_ASCII or
FTP_BINARY. The difference between this function and the
ftp_get() is that this function retrieves the file
asynchronously, so your program can perform other operations while the
file is being downloaded.
Returns TRUE on success or FALSE on failure.
Example 1. ftp_nb_get() example // 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() // 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()
// 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 have
not have disabled FTP_AUTOSEEK, the first
100 bytes of newfile will be '\0'.
See also ftp_nb_fget(),
ftp_nb_continue(),
ftp_get() and ftp_fget().