W3docs

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 avec ftp_chdir().
  • Construire des chemins pour les envois/téléchargements relatifs à l'emplacement courant du serveur.

Syntaxe

ftp_pwd(FTP\Connection $ftp): string|false

Elle prend un seul argument :

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 une resource — le code appelant est identique, seul le type de $ftp a 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

Pratique

Pratique
Quel est le rôle de la fonction ftp_pwd en PHP ?
Quel est le rôle de la fonction ftp_pwd en PHP ?
Was this page helpful?