array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'function.ftp-nb-get.php', 1 => 'ftp_nb_get', 2 => 'Retrieves a file from the FTP server and writes it to a local file (non-blocking)', ), 'up' => array ( 0 => 'ref.ftp.php', 1 => 'Функції 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', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

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

Опис

ftp_nb_get(
    FTP\Connection $ftp,
    string $local_filename,
    string $remote_filename,
    int $mode = FTP_BINARY,
    int $offset = 0
): int|false

ftp_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

Примірник 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.

Журнал змін

Версія Опис
8.1.0 Тепер параметр ftp має бути примірником FTP\Connection. Раніше очікувався resource.
7.3.0 The mode parameter is now optional. Formerly it has been mandatory.

Приклади

Приклад #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);
}
?>

Приклад #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);
}
?>

Приклад #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'.

Прогляньте також