ftp_nb_get
(PHP 4 >= 4.3.0, PHP 5)
ftp_nb_get -- Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
Description
int
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 et le sauvegarde
dans un fichier local.
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é.
Liste de paramètres
- ftp_stream
L'identifiant du lien de connexion FTP.
- local_file
Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).
- remote_file
Le chemin vers le fichier distant.
- mode
Le mode de transfert. Doit être soit FTP_ASCII ou
FTP_BINARY.
- resumepos
Valeurs de retour
Retourne FTP_FAILED ou FTP_FINISHED
ou FTP_MOREDATA.
Exemples
Exemple 1. Exemple avec ftp_nb_get()
<?php
// Initialise le téléchargement $ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) { // Faîte ce que vous voulez... echo ".";
// Continue le téléchargement... $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) { echo "Il y a eu un problème lors du téléchargement..."; exit(1); } ?>
|
|
Exemple 2. Reprise d'un téléchargement avec ftp_nb_get()
<?php
// Initialise $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) { // Faîte ce que vous voulez... echo ".";
// Continue le téléchargement... $ret = ftp_nb_continue($my_connection); } if ($ret != FTP_FINISHED) { echo "Il y a eu un problème lors du téléchargement du fichier..."; exit(1); } ?>
|
|
Exemple 3.
Reprise d'un téléchargement à la position 100 dans un nouveau fichier avec
ftp_nb_get()
<?php
// Désactive l'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 télé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'.