ftp_pwd()
Die PHP-Funktion ftp_pwd() gibt das aktuelle Verzeichnis einer FTP-Verbindung zurück. Erklärung, Syntax und Beispiele.
Die PHP-Funktion ftp_pwd() gibt das aktuelle Arbeitsverzeichnis einer geöffneten FTP-Verbindung zurück — das Äquivalent zum Eingeben von pwd ("print working directory") in einem FTP-Client. Diese Seite erklärt, was die Funktion zurückgibt, wie sie über verschiedene PHP-Versionen hinweg korrekt aufgerufen wird und wie sie in eine typische FTP-Sitzung eingebettet wird.
Was ftp_pwd() tut
Nachdem Sie sich mit einem FTP-Server verbunden und eingeloggt haben, merkt sich der Server ein „aktuelles Verzeichnis" für Ihre Sitzung. Wenn Sie sich mit ftp_chdir() oder ftp_cdup() bewegen, ändert sich dieser Ort. ftp_pwd() teilt Ihnen mit, wo Sie sich gerade befinden, und gibt den absoluten Pfad als string zurück.
Dies ist vor allem nützlich für:
- Protokollierung oder Debugging — Bestätigung, dass Sie nach dem Login im erwarteten Verzeichnis gelandet sind.
- Speichern und Wiederherstellen eines Speicherorts: den Pfad mit
ftp_pwd()erfassen, Verzeichnisse wechseln, um Arbeit zu erledigen, und dann mitftp_chdir()zurückkehren. - Pfade erstellen für Uploads/Downloads relativ zum aktuellen Speicherort des Servers.
Syntax
ftp_pwd(FTP\Connection $ftp): string|falseSie nimmt ein einzelnes Argument entgegen:
$ftp— das FTP-Verbindungs-Handle, das vonftp_connect()(oderftp_ssl_connect()) zurückgegeben wird.
Sie gibt bei Erfolg das aktuelle Verzeichnis als string zurück oder false bei einem Fehler.
Versionshinweis: In PHP 8.1 und höher ist die Verbindung ein
FTP\Connection-Objekt. In PHP 7.x und früher verwendeten FTP-Funktionen stattdessen eineresource— der Aufrufcode ist identisch, nur der Typ von$ftphat sich geändert. Code, der für ältere Versionen geschrieben wurde, funktioniert ohne Änderungen weiterhin.
Grundlegende Verwendung
Sie müssen sich verbinden und einloggen, bevor Sie ftp_pwd() aufrufen:
<?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);Direkt nach dem Login platzieren die meisten Server Sie im Home-Verzeichnis des Kontos, sodass der erste ftp_pwd()-Aufruf häufig / oder etwas wie /home/username zurückgibt.
Den Speicherort nach dem Verzeichniswechsel verfolgen
Der Wert, den ftp_pwd() zurückgibt, spiegelt jeden Navigationsschritt wider. In Kombination mit ftp_chdir() können Sie bestätigen, dass ein Wechsel erfolgreich war:
<?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);Arbeitsverzeichnis speichern und wiederherstellen
Ein gängiges Muster ist, sich zu merken, wo man sich befindet, anderswo Arbeit zu erledigen und dann zurückzukehren:
<?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);Fehlerbehandlung
ftp_pwd() gibt false zurück, wenn die Verbindung ungültig ist oder der Server die Anfrage ablehnt. Da ein leerer string ebenfalls falsy ist, verwenden Sie eine strikte === false-Prüfung anstelle von !$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);Beachten Sie, dass ftp_connect() selbst false zurückgibt, wenn es den Host nicht erreichen kann. Daher sollten Sie in Produktionscode die Verbindungs- und Login-Ergebnisse prüfen, bevor Sie ftp_pwd() aufrufen.
Verwandte Funktionen
ftp_connect()— eine FTP-Verbindung öffnen.ftp_login()— am Server authentifizieren.ftp_chdir()— das aktuelle Verzeichnis wechseln.ftp_cdup()— in das übergeordnete Verzeichnis wechseln.ftp_close()— die Verbindung schließen.- PHP FTP-Übersicht — alle FTP-Funktionen auf einen Blick.