Forum und email

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get — Ontvangt een bestand van de FTP server en schrijft het naar een lokaal bestand (non-blocking)

Beschrijving

bool ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos ] )

ftp_nb_get() ontvangt remote_file van de FTP server, en slaat het lokaal op in local_file . De overdracht mode moet of FTP_ASCII of FTP_BINARY zijn. Het verschil met ftp_fget() is, dat deze functie het bestand asynchroon ontvangt, zodat je andere dingen kan doen in je programma terwijl het bestand wordt gedownload.

Geeft TRUE terug bij succes, FALSE indien er een fout is opgetreden.

Example#1 ftp_nb_get() voorbeeld

// Initializeer de download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Doe wat je ook maar wil
   echo ".";

   // Ga door met downloaden...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Er was een fout met het downloaden van het bestand...";
   exit(1);
}

Example#2 Een download met ftp_nb_get() afmaken

// Initialiseer
$ret = ftp_nb_get ($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// OF: $ret = ftp_nb_get ($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   //Doe wat je ook maar wil
   echo ".";

   // Ga door met downloaden...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Er was een fout met het downloaden van het bestand...";
   exit(1);
}

Example#3 Zet een download op positie 100 voort naar een nieuw bestand met ftp_nb_get()

// Zet autoseek uit
ftp_set_option ($my_connection, FTP_AUTOSEEK, FALSE);

// Initializeren
$ret = ftp_nb_get ($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   ...

   // Ga door met downloaden...
   $ret = ftp_nb_continue ($my_connection);
}

In het bovenstaande voorbeeld is "newfile" 100 bytes kleiner dan "README" op de FTP server, omdat we starten met lezen op positie 100. Als we niet FTP_AUTOSEEK hadden uitgezet waren de eerste 100 bytes van het nieuwe bestand '\0'

Zie ook ftp_nb_fget(), ftp_nb_continue(), ftp_get() en ftp_fget().