PHP ftp_nb_fget()
La fonction ftp_nb_fget() est une fonction intégrée en PHP qui récupère (télécharge) un fichier du serveur FTP de manière asynchrone (non bloquant) et l’enregistre dans un fichier local ouvert.
Syntaxe
ftp_nb_fget(conn, local_file, server_file, mode, pos)
Paramètres
- conn(Obligatoire) : Spécifie la connexion FTP à utiliser.
- local_file(Obligatoire) : Spécifie un fichier local dans lequel nous stockons les données.
- server_file(Optionnel) : Spécifie le fichier dans le serveur à télécharger.
- mode(Optionnel) : Spécifie le mode de transfert. Les valeurs possibles: FTP_ASCII ou FTP_BINARY.
- pos(Optionnel) : Spécifie la position dans le fichier distant à partir duquelle commencer le téléchargement.
Valeur de retour
La fonction renvoie une des valeurs suivantes:
- FTP_FAILED (l’envoi ou la réception a échoué)
- FTP_FINISHED (l’envoi ou la réception terminé)
- FTP_MOREDATA (l’envoi ou la réception en cours)
Version PHP:
4.3+
Exemple :
Le code suivant télécharge le fichier à partir du serveur FTP de manière asynchrone (non bloquant) et enregistre-le dans un fichier local, le fichier « file.txt » est un fichier local, tandis que « test.txt » est un fichier serveur :
<?php // Se connecter au serveur $con = ftp_connect('192.168.10.10'); $login = ftp_login($con, 'test', 'test'); $local_file = "file.txt"; $fp = fopen($local_file,"w"); // lancer le téléchargement $res = ftp_nb_fget($con, $fp, "test.txt", FTP_BINARY) while ($res == FTP_MOREDATA) { // continue le téléchargement echo "Le fichier est en cours de téléchargement!"; $r = ftp_nb_continue($con); } if ($r != FTP_FINISHED) { echo "Erreur lors du téléchargement du fichier!"; exit(1); } // Fermer la connexion ftp_close($con); ?>