Saltar al contenido

ftp_get()

¿Qué es ftp_get()?

La función ftp_get() es una función integrada de PHP que recupera un archivo del servidor FTP y lo guarda en un archivo local. La función toma cinco parámetros (tres requeridos, dos opcionales):

  1. ftp_stream: El identificador de conexión devuelto por la función ftp_connect().
  2. local_file: El nombre del archivo local donde se guardarán los datos recuperados.
  3. remote_file: El nombre del archivo remoto que se recuperará del servidor FTP.
  4. mode: El modo de transferencia. Use FTP_BINARY para archivos binarios o FTP_ASCII para archivos de texto.
  5. resumepos: La posición inicial de la transferencia (por defecto es 0).

La función devuelve un valor booleano. Si la función tiene éxito al recuperar el archivo, devuelve true. De lo contrario, devuelve false.

Sintaxis de ftp_get()

La sintaxis de la función ftp_get() es la siguiente:

Sintaxis de ftp_get() en PHP

php
bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file [, int $mode = FTP_BINARY [, int $resumepos = 0 ]] )

Nota: En PHP 8.1+, el tipo resource para conexiones FTP está en desuso en favor de los objetos Ftp\Connection. La sintaxis heredada de resource se mantiene aquí por compatibilidad con versiones anteriores.

La función ftp_get() toma cinco parámetros: ftp_stream, local_file, remote_file, mode y resumepos. El parámetro ftp_stream es el identificador de conexión devuelto por la función ftp_connect(). El parámetro local_file es el nombre del archivo local donde se guardarán los datos recuperados. El parámetro remote_file es el nombre del archivo remoto que se recuperará del servidor FTP. El parámetro mode es un parámetro opcional que especifica el modo de transferencia, y el parámetro resumepos es un parámetro opcional que especifica la posición inicial de la transferencia. Se recomienda FTP_BINARY para la mayoría de los archivos (imágenes, archivos comprimidos, ejecutables), mientras que FTP_ASCII solo es necesario para archivos de texto plano y realiza conversiones automáticas de finales de línea.

Uso de ftp_get()

Para usar la función ftp_get(), primero debes establecer una conexión con el servidor FTP utilizando la función ftp_connect(). Aquí tienes un ejemplo:

Uso de ftp_get() en PHP

php
<?php
// Set up an FTP connection
$conn = @ftp_connect('ftp.example.com');
if (!$conn) {
    die("Could not connect to FTP server.");
}

// Login with your FTP credentials
if (!ftp_login($conn, 'username', 'password')) {
    die("Login failed.");
}

// Retrieve a remote file and save it to a local directory
if (ftp_get($conn, '/local/directory/local_file.txt', 'remote_file.txt', FTP_BINARY)) {
    echo "File retrieved successfully.\n";
} else {
    echo "Failed to retrieve the file.\n";
}

// Close the FTP connection
ftp_close($conn);

En este ejemplo, establecemos una conexión con el servidor FTP usando la función ftp_connect() y verificamos que se haya realizado correctamente. Luego, iniciamos sesión con nuestras credenciales FTP usando la función ftp_login() y verificamos errores de inicio de sesión. Finalmente, recuperamos un archivo remoto y lo guardamos en un directorio local usando la función ftp_get() con el modo FTP_BINARY, y cerramos la conexión FTP.

Manejo de errores en ftp_get()

Es importante manejar los errores correctamente al usar la función ftp_get(). Si la función devuelve false, significa que el archivo no pudo ser recuperado por alguna razón. Aquí tienes un ejemplo de cómo manejar los errores:

Manejo de errores en ftp_get()

php
<?php
if (ftp_get($conn, '/local/directory/local_file.txt', 'remote_file.txt', FTP_ASCII) === false) {
    echo "Failed to retrieve the file.\n";
} else {
    echo "File retrieved successfully.\n";
}

En este ejemplo, verificamos el valor de retorno de la función ftp_get(). Si es false, mostramos un mensaje de error; de lo contrario, mostramos un mensaje de éxito.

Conclusión

En conclusión, la función ftp_get() es una función integrada de PHP muy útil que te permite recuperar un archivo de un servidor FTP y guardarlo en un archivo local. Siguiendo las pautas y mejores prácticas descritas en este artículo, puedes usar la función ftp_get() en tus proyectos PHP con total confianza.

Práctica

¿Qué hace la función FTP_GET en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.