ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Überträgt eine Datei von dem FTP-Server und speichert sie lokal (nicht blockierend)

Beschreibung

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

ftp_nb_get() überträgt remote_file von dem FTP-Server, und speichert sie lokal inlocal_file. Der Transfermodus mode muss entweder FTP_ASCII oder FTP_BINARY sein. Der Unterscheid zwischen dieser Funktion und ftp_get() ist, dass diese Funktion die Datei asynchron überträgt, so dass das Programm noch andere Operationen ausführen kann, während die Datei heruntergeladen wird.

Gibt FTP_FAILED, FTP_FINISHED, oder FTP_MOREDATA zurück.

Beispiel 1. ftp_nb_get() Beispiel

// Download initialisieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
   /* ... */
   
   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}

Beispiel 2. Ein Download mit ftp_nb_get() fortsetzen

// Initialisieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));

// ODER: $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
// FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {
   
   // Irgendwas machen ...
   echo ".";

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Es gab einen Fehler bei der Übertragung.";
   exit(1);
}

Beispiel 3. Ein Download mit Hilfe von ftp_nb_get() an Position 100 fortsetzen und in eine neue Datei schreiben

// Autoseek deaktivieren
ftp_set_option($my_connection, FTP_AUTOSEEK, FALSE);

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

   // Irgendwas machen ...
   echo ".";

   // Download fortsetzen
   $ret = ftp_nb_continue($my_connection);
}

In dem oberen Beispiel ist newfile 100 Bytes kleiner als README auf dem FTP-Server, weil wir erst beim Offset 100 angefangen haben zu lesen. Hätten wir FTP_AUTOSEEK nicht deaktiviert so bestünden die ersten 100 Bytes von newfile aus'\0'.

Siehe auch ftp_nb_fget(), ftp_nb_continue(), ftp_get() und ftp_fget().

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:57:14