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, afin
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().