Descargar archivo automáticamente de servidor FTP (PHP)

En su día os indiqué cómo descargar un archivo automáticamente de una URL: http://noemilm.com/descargar-archivos-url-php/

Hoy vamos a ver algo parecido, y es cómo descargar archivos de manera automática desde un servidor FTP utilizando PHP.

FTP

En mi caso, tengo un script en PHP que se ejecuta automáticamente cada «X» tiempo. Una de las tareas que me encomendaron desarrollar dentro de dicho script era la descarga de un archivo.txt procedente de un servidor FTP. ¿Y cómo hacemos esto? Pues es realmente muy sencillo, utilizaríamos el siguiente código:

Código para la descarga del archivo desde el FTP

// Rutas al archivo (local y FTP)
$local_file = './carpeta/archivo.txt'; //Nombre archivo en nuestro PC
$server_file = 'nombrearchivoftp.txt'; //Nombre archivo en FTP

// Establecer la conexión
$ftp_server='miconexion.com';
$ftp_user_name='miusuario';
$ftp_user_pass='mipassword';
$conn_id = ftp_connect($ftp_server);

// Loguearse con usuario y contraseña
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Descarga el $server_file y lo guarda en $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Se descargado el archivo con éxito\n";
} else {
echo "Ha ocurrido un error\n";
}

// Cerrar la conexión
ftp_close($conn_id);

Y así de sencillo. Con este fragmento de código descargaríamos el archivo «nombrearchivoftp.txt» en la ruta indicada en «$local_file» y procedente del servidor FTP «$ftp_server».
Os aconsejo que en la variable $local_file indiquéis una ruta relativa y no absoluta. Si este fragmento de código lo guardas, por ejemplo, con el nombre «descargar.php» y en la ruta: «C:\xampp\htdocs\miproyecto», tened en cuenta que si indicaseis «$local_file=./archivo.txt» lo guardaríais en la carpeta dónde tenéis alojado el script (descargar.php). Si ponéis lo mismo que en el fragmento de código ($local_file = ‘./carpeta/archivo.txt’;) lo guardaríais en la ruta: «C:\xampp\htdocs\miproyecto\carpeta».