ftp_nb_get
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ftp_nb_get — Lee un fichero en un servidor FTP y lo escribe en un fichero (no bloqueante)
Descripción
La diferencia entre esta función y ftp_fget() es
que esta función puede leer el fichero de manera asíncrona, para
que el programa realice otras tareas mientras el fichero
se descarga.
Parámetros
ftp
-
Una instancia de FTP\Connection.
local_filename
-
La ruta hacia el fichero local (será sobrescrito si el fichero ya existe).
remote_filename
-
La ruta hacia el fichero remoto.
mode
-
El modo de transferencia. Debe ser FTP_ASCII o
FTP_BINARY.
offset
-
La posición en el fichero remoto a partir de la cual
debe comenzar la descarga.
Ejemplos
Ejemplo #1 Ejemplo con ftp_nb_get()
<?php
// Inicia la descarga
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Realice lo que desee...
echo ".";
// Continúa la descarga...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "Hubo un problema durante la descarga...";
exit(1);
}
?>
Ejemplo #2 Reanudación de una descarga con ftp_nb_get()
<?php
// Inicializa
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// O: $ret = ftp_nb_get($ftp, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
// Realice lo que desee...
echo ".";
// Continúa la descarga...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "Hubo un problema durante la descarga del fichero...";
exit(1);
}
?>
Ejemplo #3
Reanudación de una descarga desde la posición 100 en un nuevo fichero con
ftp_nb_get()
<?php
// Desactiva AutoSeek
ftp_set_option($ftp, FTP_AUTOSEEK, false);
// Inicialización
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {
/* ... */
// Continúa la descarga...
$ret = ftp_nb_continue($ftp);
}
?>
En el ejemplo anterior, newfile es 100
bytes más pequeño que README en el sitio FTP, ya que
comenzamos a leer desde el offset 100. Si no hubiéramos desactivado la opción FTP_AUTOSEEK, los primeros
100 bytes del fichero newfile serían rellenados
con '\0'.
Ver también
- ftp_nb_fget() - Lee un fichero en un servidor FTP y lo escribe en un fichero (no bloqueante)
- ftp_nb_continue() - Reanuda la descarga de un fichero (no bloqueante)
- ftp_fget() - Descarga un fichero a través de FTP en un fichero local
- ftp_get() - Descarga un fichero desde un servidor FTP