ftp_async_get
(PHP 4 CVS only)
ftp_async_get -- Retrieves a file from the FTP server asynchronously and writes it to a local file
Description
bool
ftp_async_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])
ftp_async_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 error.
Example 1. ftp_async_get() example // Initate the download
$ret = ftp_async_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue downloading...
$ret = ftp_async_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
} |
|
Example 2. Resuming a download with ftp_async_get() // Initate
$ret = ftp_async_get ($my_connection, "test", "README", FTP_BINARY,
filesize("test"));
// OR: $ret = ftp_async_get ($my_connection, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue downloading...
$ret = ftp_async_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_async_get()
// Disable Autoseek
ftp_set_option ($my_connection, FTP_AUTOSEEK, FALSE);
// Initiate
$ret = ftp_async_get ($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {
...
// Continue downloading...
$ret = ftp_async_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_async_fget(),
ftp_async_continue(),
ftp_get() and ftp_fget().