(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ftp_nb_fget — Lee un fichero en un servidor FTP y lo escribe en un fichero (no bloqueante)
$ftp,$stream,$remote_filename,$mode = FTP_BINARY,$offset = 0
ftp_nb_fget() lee el fichero remote_filename
presente en el servidor FTP ftp.
La diferencia entre esta función y ftp_fget() es que esta función puede leer el fichero de manera asíncrona, de modo que su programa pueda realizar otras tareas mientras el fichero se descarga.
ftpUna instancia de FTP\Connection.
streamUn puntero de fichero abierto en el que se escriben los datos.
remote_filenameLa ruta hacia el fichero remoto.
mode
El modo de transferencia. Debe ser FTP_ASCII o
FTP_BINARY.
offsetLa posición en el fichero remoto desde la cual debe comenzar la descarga.
Devuelve FTP_FAILED o FTP_FINISHED
o FTP_MOREDATA.
| Versión | Descripción |
|---|---|
| 8.1.0 |
El parámetro ftp ahora espera una instancia de
FTP\Connection ; anteriormente, se esperaba un resource.
|
| 7.3.0 |
El argumento mode ahora es opcional. Anteriormente era obligatorio.
|
Ejemplo #1 Ejemplo con ftp_nb_fget()
<?php
// Apertura de algunos ficheros para escritura
$file = 'index.php';
$fp = fopen($file, 'w');
$ftp = ftp_connect($ftp_server);
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
// Inicia la descarga
$ret = ftp_nb_fget($ftp, $fp, $file, 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 "Ocurrió un error durante la descarga del fichero...";
exit(1);
}
// Cierra el puntero de fichero
fclose($fp);
?>