array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.ftp-nb-get.php', 1 => 'ftp_nb_get', ), 'up' => array ( 0 => 'ref.ftp.php', 1 => 'Funções da extensão FTP', ), 'prev' => array ( 0 => 'function.ftp-nb-fput.php', 1 => 'ftp_nb_fput', ), 'next' => array ( 0 => 'function.ftp-nb-put.php', 1 => 'ftp_nb_put', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/ftp/functions/ftp-nb-get.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ftp_nb_get — Retrieves a file from the FTP server and writes it to a local file (non-blocking)
$ftp
,$local_filename
,$remote_filename
,$mode
= FTP_BINARY
,$offset
= 0ftp_nb_get() retrieves a remote file from the FTP server, and saves it into a local file.
The difference between this function and ftp_get() is that this function retrieves the file asynchronously, so your program can perform other operations while the file is being downloaded.
ftp
Uma instância de FTP\Connection.
local_filename
The local file path (will be overwritten if the file already exists).
remote_filename
The remote file path.
mode
The transfer mode. Must be either FTP_ASCII
or
FTP_BINARY
.
offset
The position in the remote file to start downloading from.
Returns FTP_FAILED
or FTP_FINISHED
or FTP_MOREDATA
, or false
on failure to open the local file.
Versão | Descrição |
---|---|
8.1.0 |
O parâmetro ftp agora espera uma instância de FTP\Connection;
anteriormente, um resource era esperado.
|
7.3.0 |
The mode parameter is now optional. Formerly it
has been mandatory.
|
Exemplo #1 ftp_nb_get() example
<?php
// Initiate the download
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
}
?>
Exemplo #2 Resuming a download with ftp_nb_get()
<?php
// Initiate
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// OR: $ret = ftp_nb_get($ftp, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
// Do whatever you want
echo ".";
// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "There was an error downloading the file...";
exit(1);
}
?>
Exemplo #3 Resuming a download at position 100 to a new file with ftp_nb_get()
<?php
// Disable Autoseek
ftp_set_option($ftp, FTP_AUTOSEEK, false);
// Initiate
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {
/* ... */
// Continue downloading...
$ret = ftp_nb_continue($ftp);
}
?>
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 '\0'
.