Forum und email

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get — Ανακτά ένα αρχείο από τον FTP server και το σώζει σε ένα local file (non-blocking)

Περιγραφή

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

Η ftp_nb_get() ανακτά το remote_file από τον FTP server, και το αποθηκεύει στο local_file locally. Η προσδιορισμένη transfer mode πρέπει να είναι είτε FTP_ASCII είτε FTP_BINARY. Η διαφορά αυτής της συνάρτησης με την ftp_get() είναι ότι ανακτά το αρχείο ασύγχρονα, έτσι το πρόγραμμά σας μπορεί να εκτελεί και άλλες λειτουργίες παράλληλα με το downloading του αρχείου.

Επιστρέφει TRUE στην επιτυχία και FALSE στην αποτυχία.

Example#1 Παράδειγμα της ftp_nb_get()

// Initate the download
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
   
   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}

Example#2 RΣυνεχίζοντας το downloading με την ftp_nb_get()

// Initate 
$ret = ftp_nb_get ($my_connection, "test", "README", FTP_BINARY, 
                      filesize("test"));
// OR: $ret = ftp_nb_get ($my_connection, "test", "README", 
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
   
   // Do whatever you want
   echo ".";

   // Continue downloading...
   $ret = ftp_nb_continue ($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "There was an error downloading the file...";
   exit(1);
}

Example#3 Συνεχίζοντας το downloading στη θέση 100 σε ένα νέο αρχείο με την ftp_nb_get()

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

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

   ...
   
   // Continue downloading...
   $ret = ftp_nb_continue ($my_connection);
}

Στο παραπάνω παράδειγμα, το "newfile" είναι100 bytes μικρότερο από το "README" του FTP server επειδή ξεκινήσαμε το διάβασμα με offset 100. Εάν δεν έχουμε την FTP_AUTOSEEK disabled, τα πρώτα 100 bytes του νέου αρχείου θα είναι'\0'.

Ανατρέξτε επίσης στις: ftp_nb_fget(), ftp_nb_continue(), ftp_get() και ftp_fget().