ftp_pwd()
La fonction ftp_pwd() est une fonction PHP intégrée qui retourne le répertoire courant de la connexion FTP. Cet article présente son fonctionnement.
La fonction PHP ftp_pwd() retourne le répertoire de travail courant d'une connexion FTP ouverte — l'équivalent de la commande pwd (« print working directory ») dans un client FTP. Cette page explique ce que la fonction retourne, comment l'appeler correctement selon les versions de PHP et comment elle s'intègre dans une session FTP typique.
Ce que fait ftp_pwd()
Après vous être connecté et authentifié sur un serveur FTP, le serveur conserve un « répertoire courant » pour votre session. Au fur et à mesure que vous naviguez avec ftp_chdir() ou ftp_cdup(), cet emplacement change. ftp_pwd() vous indique où vous vous trouvez actuellement en retournant le chemin absolu sous forme de string.
Cette fonction est principalement utile pour :
- La journalisation ou le débogage — confirmer que vous avez bien atterri dans le répertoire attendu après la connexion.
- Sauvegarder et restaurer un emplacement : capturer le chemin avec
ftp_pwd(), changer de répertoire pour effectuer un travail, puis revenir avecftp_chdir(). - Construire des chemins pour les envois/téléchargements relatifs à l'emplacement courant du serveur.
Syntaxe
ftp_pwd(FTP\Connection $ftp): string|falseElle prend un seul argument :
$ftp— le handle de connexion FTP retourné parftp_connect()(ouftp_ssl_connect()).
Elle retourne le répertoire courant sous forme de string en cas de succès, ou false en cas d'échec.
Note de version : Dans PHP 8.1 et versions ultérieures, la connexion est un objet
FTP\Connection. Dans PHP 7.x et versions antérieures, les fonctions FTP utilisaient uneresource— le code appelant est identique, seul le type de$ftpa changé. Le code écrit pour les anciennes versions continue de fonctionner sans modification.
Utilisation de base
Vous devez vous connecter et vous authentifier avant d'appeler 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);Juste après la connexion, la plupart des serveurs vous placent dans le répertoire personnel du compte, donc le premier appel à ftp_pwd() retourne généralement / ou quelque chose comme /home/username.
Suivre votre position après un changement de répertoire
La valeur retournée par ftp_pwd() reflète chaque étape de navigation. Combinée avec ftp_chdir(), elle vous permet de confirmer qu'un déplacement a réussi :
<?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);Sauvegarder et restaurer le répertoire de travail
Un schéma courant consiste à mémoriser votre position, effectuer un travail ailleurs, puis revenir :
<?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);Gestion des erreurs
ftp_pwd() retourne false si la connexion est invalide ou si le serveur rejette la requête. Comme une string vide est également évaluée à faux, utilisez une comparaison stricte === false plutôt que !$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);Notez que ftp_connect() retourne elle-même false si elle ne peut pas joindre l'hôte, donc dans un code en production vous devriez vérifier les résultats de la connexion et de l'authentification avant d'appeler ftp_pwd().
Fonctions associées
ftp_connect()— ouvrir une connexion FTP.ftp_login()— s'authentifier sur le serveur.ftp_chdir()— changer le répertoire courant.ftp_cdup()— remonter vers le répertoire parent.ftp_close()— fermer la connexion.- Vue d'ensemble FTP PHP — toutes les fonctions FTP en un coup d'œil.