ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ftp_nb_getLit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

ftp_nb_get(
    FTP\Connection$ftp,
    string$local_filename,
    string$remote_filename,
    int$mode = FTP_BINARY,
    int$offset = 0
): int|false

ftp_nb_get() lit le fichier remote_filename présent sur le serveur FTP ftp 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

Une instance de FTP\Connection.

local_filename

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_filename

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII ou FTP_BINARY.

offset

La position dans le fichier distant à partir de laquelle le téléchargement doit commencer.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA, ou false en cas d'échec d'ouverture du fichier local.

Historique

VersionDescription
8.1.0 La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 Le paramètre mode est maintenant optionnel. Précédemment il était obligatoire.

Exemples

Exemple #1 Exemple avec ftp_nb_get()

<?php

// Initialise le téléchargement
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while (
$ret == FTP_MOREDATA) {

// Faites ce que vous voulez...
echo ".";

// Continue le téléchargement...
$ret = ftp_nb_continue($ftp);
}
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($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// Ou : $ret = ftp_nb_get($ftp, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

// Faites ce que vous voulez...
echo ".";

// Continue le téléchargement...
$ret = ftp_nb_continue($ftp);
}
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($ftp, FTP_AUTOSEEK, false);

// Initialisation
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while (
$ret == FTP_MOREDATA) {



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 newfile seraient complétés avec '\0'.

Voir aussi

  • ftp_nb_fget() - Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
  • ftp_nb_continue() - Reprend le téléchargement d'un fichier (non bloquant)
  • ftp_fget() - Télécharge un fichier via FTP dans un fichier local
  • ftp_get() - Télécharge un fichier depuis un serveur FTP
To Top