Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

ftp_nb_get

FTP-Funktionen

    Befehl:
int ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )


    Parameter-Liste:
NameBeschreibung
ftp_streamDer Verbindungshandler der FTP-Verbindung.
local_fileDer Pfad zur lokalen Datei (wird überschrieben falls die Datei schon existiert).
remote_fileDer Pfad zur Datei auf dem Server.
modeDer Transfer-Modus. Muss entweder FTP_ASCII oder FTP_BINARY sein.
resumeposDie Position in der entfernten Datei, an der der Download beginnen soll.

    Beschreibung:
ftp_nb_get() ruft eine Remote-Datei vom FTP-Server und speichert sie in einer lokalen Datei.

Der Unterscheid zwischen dieser Funktion und ftp_get() ist, dass diese Funktion die Datei asynchron überträgt, so dass Ihr Programm noch andere Operationen ausführen kann während die Datei heruntergeladen wird.


    Aktiv in Version:
(PHP 4 >= 4.3.0, PHP 5, PHP 7)

    Siehe auch:
Lädt eine Datei vom FTP-Server und schreibt sie in eine lokale Datei (nicht-blockierend)
 
Nimmt die Übertragung einer Datei wieder auf (nicht-blockierend)
 
Lädt eine Datei vom FTP-Server und speichert sie in eine geöffnete Datei
 
Lädt eine Datei von einem FTP-Server herunter
 

ftp_nb_get() - Beispiel:


Eingabe:
<?php

// Download initialisieren
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
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);
}
?>

ftp_nb_get() - Beispiel 2: Einen Download mit ftp_nb_get() fortsetzen


Eingabe:
<?php

// 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);
}
?>

ftp_nb_get() - Beispiel 3: Einen Download mit Hilfe von ftp_nb_get() an Position 100 fortsetzen und in eine neue Datei schreiben


Eingabe:
<?php

// 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) {

   /* ... */

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


Ausgabe:
In dem obigen 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'.
FTP-Funktionen