PHP.mk документација

ftp_nb_get

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.ftp-nb-get.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.ftp-nb-get.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
ftp_nb_get

Референца за `function.ftp-nb-get.php` со подобрена типографија и навигација.

function.ftp-nb-get.php

ftp_nb_get

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

ftp_nb_getПрезема датотека од FTP серверот и ја запишува во локална датотека (неблокирачки)

= NULL

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

ftp_nb_get() презема оддалечена датотека од FTP серверот и ја зачувува во локална датотека.

Разликата помеѓу оваа функција и ftp_get() е што оваа функција ја презема датотеката асинхроно, така што вашата програма може да извршува други операции додека датотеката се презема.

Параметри

ftp

Еден FTP\Connection instance.

local_filename

Локалната патека на датотеката (ќе биде препишана ако датотеката веќе постои).

remote_filename

ја зачувува локалната датотека на FTP-серверот.

mode

Патеката до локалната датотека. FTP_ASCII or FTP_BINARY.

offset

Позицијата во оддалечената датотека од која ќе започне преземањето.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. FTP_FAILED or FTP_FINISHED or FTP_MOREDATA, или false при неуспех при отворање на локалната датотека.

Дневник на промени

Верзија = NULL
8.1.0 На ftp параметарот очекува FTP\Connection инстанца сега; претходно, а resource се очекуваше.
7.3.0 На mode Позицијата во далечинската датотека за почеток на поставувањето.

Примери

Пример #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 Продолжување на преземање со 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 Продолжување на преземање од позиција 100 во нова датотека со 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);
}
?>

Во горниот пример, newfile е 100 бајти помала од README на FTP серверот бидејќи започнавме со читање од поместување 100. Ако не го оневозможевме FTP_AUTOSEEK, првите 100 бајти од newfile ќе биде '\0'.

Види Исто така

  • ftp_nb_fget() - Презема датотека од FTP серверот и ја запишува во отворена датотека (неблокирачки)
  • ftp_nb_continue() - Продолжува со преземање/испраќање датотека (неблокирачки)
  • ftp_fget() - Презема датотека од FTP серверот и ја зачувува во отворена датотека
  • ftp_get() - Презема датотека од FTP серверот

Белешки од корисници 1 белешка

passerbyxp на gmail dot com
пред 14 години
Note that you may have to keep calling ftp_nb_continue in order to complete the download. For example, if you do this:

<?php
ftp_nb_get($conn,$localfile,$remotefile,FTP_BINARY)
//do some LONG time work
while(ftp_nb_continue($conn)!=FTP_FINISHED){}
?>

Your local file may only contains a few kilobytes and the later ftp_nb_continue will keep raising warning of no more data (due to connection time out, I guess).

So you may want to do this instead:

<?php
$dl=ftp_nb_get($conn,$localfile,$remotefile,FTP_BINARY)
//part of long time work
if(ftp_nb_continue($conn)==FTP_MOREDATA) {}
//part of long time work
if(ftp_nb_continue($conn)==FTP_MOREDATA) {}
//continue to do this until you finish the long time work
while(ftp_nb_continue($conn)==FTP_MOREDATA){}
?>

This happened on my Windows XP + PHP 5.3.8 under CLI. Hope this helps someone.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.