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);
?>
Questions d'entretiens PHPQuestions d’entretiens PHP – Partie 1Questions sur PHP avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *