W3docs

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 mit ftp_chdir() zurückkehren.
  • Pfade erstellen für Uploads/Downloads relativ zum aktuellen Speicherort des Servers.

Syntax

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

Sie nimmt ein einzelnes Argument entgegen:

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 eine resource — der Aufrufcode ist identisch, nur der Typ von $ftp hat 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

Übungen

Übung
Welche Rolle spielt die ftp_pwd-Funktion in PHP?
Welche Rolle spielt die ftp_pwd-Funktion in PHP?
Was this page helpful?