(PHP 4, PHP 5)
ftp_cdup — Wechselt in das darüberliegende Verzeichnis
Wechselt eine Verzeichnisebene nach oben.
Der Verbindungshandler der FTP-Verbindung.
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Beispiel #1 ftp_cdup()-Beispiel
<?php
// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);
// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// Wechsele vom aktuellen Verzeichnis nach 'html'
ftp_chdir($conn_id, 'html');
echo ftp_pwd($conn_id); // /html
// in das darüberliegende Verzeichnis zurückspringen
if (ftp_cdup($conn_id)) {
echo "cdup erfolgreich\n";
} else {
echo "cdup nicht erfolgreich\n";
}
echo ftp_pwd($conn_id); // /
ftp_close($conn_id);
?>
ftp_cdup can only up to the parent and if you want test a directory that is not a child then you can't with ftp_cdup ;)
i think ftp_cdup can make it more nice
function dirExists($ftp, $directory = '.') {
if (@ftp_chdir($ftp, $directory)) {
ftp_cdup($ftp);
return TRUE;
} return FALSE;
}
The below example doesn't seem to work on a windows based machine so I use this trick instead
<?php
$aPath = explode('/',ftp_pwd($conn_id));
$sHomeDir = str_repeat('../', count($aPath) - 1);
ftp_chdir($conn_id, $sHomeDir);
?>
I used a recursive cdup function until i realised i could navigate to the user's home directory from any location using ~:
<? ftp_chdir($connid, "~"); ?>