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 un archivo remoto desde el servidor FTP, y lo almacena en un archivo local.

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.

Lista de parámetros

secuencia_ftp

El identificador de enlace de la conexión FTP.

archivo_local

La ruta del archivo local (será sobrescrito si el archivo ya existe).

archivo_remoto

La ruta del archivo remoto.

modo

El modo de transferencia. Debe ser FTP_ASCII o FTP_BINARY.

pos_continuacion

Valores retornados

Devuelve FTP_FAILED o FTP_FINISHED o FTP_MOREDATA.

Ejemplos

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 deshabilitamos FTP_AUTOSEEK, los primeros 100 bytes de archivo_nuevo serían '\0'.

Ver también

ftp_nb_fget()
ftp_nb_continue()
ftp_fget()
ftp_get()

Hosting by: hurra.com
Generated: 2007-01-26 18:00:42