ftp_pwd()
La función ftp_pwd() de PHP devuelve el directorio actual de la conexión FTP. En este artículo se explica su uso.
La función PHP ftp_pwd() devuelve el directorio de trabajo actual de una conexión FTP abierta — equivalente a escribir pwd ("print working directory") en un cliente FTP. Esta página explica qué devuelve la función, cómo llamarla correctamente en las distintas versiones de PHP y cómo encaja en una sesión FTP típica.
Qué hace ftp_pwd()
Después de conectarse e iniciar sesión en un servidor FTP, el servidor mantiene un registro del "directorio actual" de tu sesión. A medida que te mueves con ftp_chdir() o ftp_cdup(), esa ubicación cambia. ftp_pwd() te indica dónde te encuentras actualmente, devolviendo la ruta absoluta como string.
Esto resulta útil principalmente para:
- Registro o depuración — confirmar que has llegado al directorio esperado tras iniciar sesión.
- Guardar y restaurar una ubicación: captura la ruta con
ftp_pwd(), cambia de directorio para realizar algún trabajo y luego regresa conftp_chdir(). - Construir rutas para subidas/descargas relativas a la ubicación actual del servidor.
Sintaxis
ftp_pwd(FTP\Connection $ftp): string|falseAcepta un único argumento:
$ftp— el manejador de conexión FTP devuelto porftp_connect()(oftp_ssl_connect()).
Devuelve el directorio actual como string si tiene éxito, o false si falla.
Nota de versión: En PHP 8.1 y versiones posteriores, la conexión es un objeto
FTP\Connection. En PHP 7.x y anteriores, las funciones FTP usaban unresourceen su lugar — el código de llamada es idéntico, solo cambia el tipo de$ftp. El código escrito para versiones anteriores sigue funcionando sin modificaciones.
Uso básico
Debes conectarte e iniciar sesión antes de llamar a ftp_pwd():
<?php
// Open an FTP connection
$ftp = ftp_connect('ftp.example.com');
// Log in with your credentials
ftp_login($ftp, 'username', 'password');
// Ask the server where we are
$current = ftp_pwd($ftp);
echo "Current directory: $current\n"; // e.g. "Current directory: /"
// Always close the connection when done
ftp_close($ftp);Inmediatamente después de iniciar sesión, la mayoría de los servidores te colocan en el directorio de inicio de la cuenta, por lo que la primera llamada a ftp_pwd() suele devolver / o algo como /home/username.
Rastrear tu ubicación al cambiar de directorios
El valor que devuelve ftp_pwd() refleja cada paso de navegación. Combinado con ftp_chdir(), te permite confirmar que un movimiento se realizó correctamente:
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'username', 'password');
echo ftp_pwd($ftp) . "\n"; // /
ftp_chdir($ftp, 'public_html');
echo ftp_pwd($ftp) . "\n"; // /public_html
ftp_chdir($ftp, 'images');
echo ftp_pwd($ftp) . "\n"; // /public_html/images
ftp_close($ftp);Guardar y restaurar el directorio de trabajo
Un patrón habitual es recordar dónde estás, realizar trabajo en otro lugar y luego volver:
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'username', 'password');
// Remember the starting point
$home = ftp_pwd($ftp);
// Move into a subfolder and upload a file
ftp_chdir($ftp, 'uploads');
ftp_put($ftp, 'report.pdf', '/tmp/report.pdf', FTP_BINARY);
// Go back to where we started
ftp_chdir($ftp, $home);
ftp_close($ftp);Manejo de errores
ftp_pwd() devuelve false si la conexión no es válida o si el servidor rechaza la solicitud. Dado que un string vacío también es falsy, utiliza una comprobación estricta === false en lugar de !$current:
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'username', 'password');
$current = ftp_pwd($ftp);
if ($current === false) {
echo "Failed to get the current directory.\n";
} else {
echo "You are in: $current\n";
}
ftp_close($ftp);Ten en cuenta que ftp_connect() devuelve false si no puede alcanzar el host, por lo que en código de producción debes verificar los resultados de la conexión y del inicio de sesión antes de llamar a ftp_pwd().
Funciones relacionadas
ftp_connect()— abrir una conexión FTP.ftp_login()— autenticarse en el servidor.ftp_chdir()— cambiar el directorio actual.ftp_cdup()— subir al directorio padre.ftp_close()— cerrar la conexión.- Resumen de FTP en PHP — todas las funciones FTP de un vistazo.