PHP Handbuch
Zurück |  | Weiter

# 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().

Zurück | Zum Anfang | Weiter
ftp_nb_fput | Nach oben | ftp_nb_put