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 ;)
(PHP 4, PHP 5, PHP 7)
ftp_cdup — 切换到当前目录的父目录
$ftp_stream
) : bool切换目录至当前目录的父目录 (上级目录)。
ftp_stream
FTP 连接的标识符。
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 ftp_cdup() 例子
<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// change the current directory to html
ftp_chdir($conn_id, 'html');
echo ftp_pwd($conn_id); // /html
// return to the parent directory
if (ftp_cdup($conn_id)) {
echo "cdup successful\n";
} else {
echo "cdup not successful\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 ;)
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, "~"); ?>