ftp_nb_get
(PHP 4 >= 4.3.0, PHP 5)
ftp_nb_get -- Recupera un archivo desde el servidor FTP y lo
escribe sobre un archivo local (modo no-bloqueo)
Descripción
int
ftp_nb_get ( resource secuencia_ftp, string archivo_local, string archivo_remoto, int modo [, int pos_continuacion] )
ftp_nb_get() recupera
el archivo_remoto desde el servidor FTP, y lo
guarda localmente
en archivo_local. El modo
de transferencia especificado debe ser FTP_ASCII
o
FTP_BINARY.La diferencia entre ésta
función y ftp_get() es que ésta
función recupera el archivo asincrónicamente, de modo
que su programa puede realizar otras operaciones mientras el archivo
está siendo descargado.
Devuelve FTP_FAILED, FTP_FINISHED,
o
FTP_MOREDATA.
Ejemplo 1. Ejemplo de ftp_nb_get()
<?php
// Iniciar la descarga $ret = ftp_nb_get($mi_conexion, "test", "README", FTP_BINARY); while ($ret == FTP_MOREDATA) { // Haga lo que quiera echo ".";
// Continuar la descarga... $ret = ftp_nb_continue($mi_conexion); } if ($ret != FTP_FINISHED) { echo "Hubo un error descargando el archivo..."; exit(1); } ?>
|
|
Ejemplo 2. Reanudando una descarga
con ftp_nb_get()
<?php
// Iniciar $ret = ftp_nb_get($mi_conexion, "test", "README", FTP_BINARY, filesize("test"));
// O: $ret = ftp_nb_get($mi_conexion, "test", "README", // FTP_BINARY, FTP_AUTORESUME); while ($ret == FTP_MOREDATA) { // Haga lo que quiera echo ".";
// Continuar descargando... $ret = ftp_nb_continue($mi_conexion); } if ($ret != FTP_FINISHED) { echo "Hubo un error descargando el archivo..."; exit(1); } ?>
|
|
Ejemplo 3.
Reanudar una descarga en la posición 100 sobre un
archivo nuevo con ftp_nb_get()
<?php
// Deshabilitar Autoseek ftp_set_option($mi_conexion, FTP_AUTOSEEK, FALSE);
// Iniciar $ret = ftp_nb_get($mi_conexion, "archivo_nuevo", "README", FTP_BINARY, 100); while ($ret == FTP_MOREDATA) {
/* ... */ // Continuar descarga... $ret = ftp_nb_continue($mi_conexion); } ?>
|
|
En el ejemplo anterior, "archivo_nuevo" es 100
bytes más pequeña que "README" en
el servidor FTP, ya que comenzamos la lectura en la posición
100. Si no hemos deshabilitado FTP_AUTOSEEK, los
primeros 100 bytes de "archivo_nuevo"
serán '\0'.
Vea también
ftp_nb_fget(),
ftp_nb_continue(),
ftp_get(), y ftp_fget().