ftp_nb_get
(PHP 4 >= 4.3.0)
ftp_nb_get -- Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
Description
bool
ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])
ftp_nb_get() lit le fichier remote_file
présent sur le serveur FTP ftp_stream, puis écrit
ce fichier dans le pointeur de fichier handle. Le
mode de transfert mode spécifié peut être
FTP_ASCII ou FTP_BINARY.
La différence entre cette fonction et ftp_fget() est
que cette fonction peut lire le fichier de manière asynchrone, de manière
à ce que votre programme fasse autre chose, pendant que le fichier
est téléchargé.
Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Exemple 1. Exemple avec ftp_nb_get()
// Initialisation $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) { // Faites ce que vous voulez echo ".";
// Continue le chargement $ret = ftp_nb_continue ($my_connection); } if ($ret != FTP_FINISHED) { echo "Il y a eu une erreur lors du chargement du fichier..."; exit(1); }
|
|
Exemple 2. Reprise d'un chargement avec ftp_nb_get()
// Initialisation $ret = ftp_nb_get ($my_connection, "test", "README", FTP_BINARY, filesize("test")); // Ou : $ret = ftp_nb_get ($my_connection, "test", "README", // FTP_BINARY, FTP_AUTORESUME); while ($ret == FTP_MOREDATA) { // Faites ce que vous voulez echo ".";
// Continue le chargement $ret = ftp_nb_continue ($my_connection); } if ($ret != FTP_FINISHED) { echo "Il y a eu une erreur lors du chargement du fichier..."; exit(1); }
|
|
Exemple 3.
Reprise du téléchargement à la position 100 avec ftp_nb_get()
// Désactive l'option de Autoseek ftp_set_option ($my_connection, FTP_AUTOSEEK, FALSE);
// Initialisation $ret = ftp_nb_get ($my_connection, "newfile", "README", FTP_BINARY, 100); while ($ret == FTP_MOREDATA) {
... // Continue le chargement $ret = ftp_nb_continue ($my_connection); }
|
|
Dans l'exemple ci-dessus, "newfile" est 100
octets plus petit que "README" sur le site FTP, car
nous avons commencé à lire à l'offset 100. Si nous n'avions pas
désactivé l'option FTP_AUTOSEEK, les premiers
100 octets du fichier seraient complétés avec '\0'.
Voir aussi
ftp_nb_fget(),
ftp_nb_continue(),
ftp_get() et
ftp_fget().