W3docs

ftp_quit()

La función ftp_quit() de PHP cierra una conexión FTP. En este artículo explicamos su uso, manejo de errores y la alternativa moderna recomendada.

Comprendiendo la función PHP ftp_quit()

La función ftp_quit() cierra una conexión FTP abierta y libera los recursos asociados a ella. Es la contraparte de ftp_connect(): una vez que has terminado de transferir archivos, llamar a ftp_quit() envía el comando FTP QUIT al servidor y cierra la sesión de forma limpia.

Este artículo explica qué hace la función, por qué es importante cerrar una conexión y cómo usarla de forma segura en bases de código PHP antiguas, junto con el reemplazo moderno que deberías usar en primer lugar.

Obsoleta y eliminada: ftp_quit() es un alias de ftp_close(). El alias fue marcado como obsoleto en PHP 7.2 y eliminado en PHP 8.0. En cualquier proyecto que ejecute PHP 8 o posterior, llama a ftp_close() en su lugar, ya que se comporta de forma idéntica. Esta guía documenta ftp_quit() para el mantenimiento de código heredado.

¿Qué es ftp_quit()?

La función ftp_quit() acepta un único parámetro:

  1. ftp_stream — el identificador de conexión devuelto por ftp_connect() (o ftp_ssl_connect()).

Devuelve true si tiene éxito, o false en caso de error.

¿Por qué cerrar una conexión FTP?

PHP cierra automáticamente una conexión FTP cuando el script finaliza, entonces ¿por qué llamar a ftp_quit() explícitamente?

  • Liberar recursos con anticipación. En un script de larga duración que abre varias conexiones (por ejemplo, sincronizando con múltiples servidores), cerrar cada una en cuanto termines evita mantener sockets inactivos abiertos.
  • Enviar un QUIT limpio. Un cierre gracioso le indica al servidor que te estás desconectando, lo que le permite liberar sus propios recursos por sesión de inmediato en lugar de esperar un tiempo de espera.
  • Mantenerse dentro de los límites de conexión. Muchos servidores FTP limitan las conexiones simultáneas por usuario. Liberar las conexiones con prontitud evita errores de "demasiadas conexiones".

Sintaxis de ftp_quit()

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

Sintaxis de ftp_quit()

bool ftp_quit ( resource $ftp_stream )

La función ftp_quit() toma un parámetro requerido, ftp_stream. El parámetro ftp_stream es el identificador de conexión devuelto por la función ftp_connect().

Uso de ftp_quit()

Para usar la función ftp_quit(), primero establece una conexión con ftp_connect() y autentícate con ftp_login(). Una vez que tus transferencias estén completas, cierra la sesión. Aquí tienes un flujo típico para entornos PHP heredados:

Uso de ftp_quit()

<?php

// Set up an FTP connection
$conn = ftp_connect('ftp.example.com');

// Login with your FTP credentials
ftp_login($conn, 'username', 'password');

// ... transfer files here (ftp_put, ftp_get, etc.) ...

// Close the FTP connection (use ftp_close() in PHP 8+)
ftp_quit($conn);

En este ejemplo, nos conectamos al servidor FTP con ftp_connect(), nos autenticamos con ftp_login(), realizamos las transferencias de archivos necesarias y finalmente cerramos la conexión con ftp_quit().

Después de que ftp_quit() se ejecuta, el manejador $conn ya no es válido — cualquier llamada FTP posterior sobre él (como ftp_get() o ftp_pwd()) fallará. Si necesitas comunicarte con el servidor nuevamente, abre una conexión nueva.

Manejo de errores en ftp_quit()

Es importante manejar los errores correctamente al usar la función ftp_quit(). Si la función devuelve false, significa que la operación no fue exitosa. Los fallos son raros y generalmente indican que la conexión ya estaba cerrada. Aquí tienes un ejemplo de cómo manejar los errores:

Manejo de errores en ftp_quit()

<?php

$connection_closed = ftp_quit($conn);

if (!$connection_closed) {
    echo "Failed to close FTP connection.\n";
}

Al verificar el valor de retorno, puedes confirmar que la conexión se cerró como se esperaba. En la práctica, un resultado false es poco común y generalmente significa que la conexión ya se había interrumpido.

ftp_quit() vs. ftp_close()

Las dos funciones son idénticas en comportamiento — ftp_quit() es simplemente un alias más antiguo. La única diferencia es la disponibilidad:

FunciónDisponible enEstado
ftp_quit()PHP 4 – 7.xObsoleta en 7.2, eliminada en 8.0
ftp_close()PHP 4 en adelanteRecomendada

Si estás escribiendo código nuevo, usa siempre ftp_close(). Reserva ftp_quit() para el mantenimiento de código que deba ejecutarse en PHP 7.1 o anterior.

Conclusión

La función ftp_quit() cierra una conexión FTP en entornos PHP heredados, liberando recursos y finalizando la sesión de forma limpia. Con un uso adecuado y manejo de errores, es una parte confiable de los flujos de trabajo FTP en versiones antiguas de PHP. Para PHP 8 y posteriores, reemplázala por ftp_close(). Para explorar el conjunto completo de herramientas FTP, consulta la descripción general de las funciones FTP de PHP.

Práctica

Práctica
¿Cuál es la función principal del método FTP_QUIT en PHP?
¿Cuál es la función principal del método FTP_QUIT en PHP?
Was this page helpful?