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);
?>PHP - Manual: ftp_cdup
2025-10-31
(PHP 4, PHP 5, PHP 7, PHP 8)
ftp_cdup — 切换到当前目录的父目录
| 版本 | 说明 | 
|---|---|
| 8.1.0 | 现在 ftp参数接受 FTP\Connection
  实例,之前接受 resource。 | 
示例 #1 ftp_cdup() 例子
<?php 
// set up basic connection 
$ftp = ftp_connect($ftp_server); 
// login with username and password 
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass); 
// change the current directory to html 
ftp_chdir($ftp, 'html'); 
echo ftp_pwd($ftp); // /html 
// return to the parent directory 
if (ftp_cdup($ftp)) { 
  echo "cdup successful\n"; 
} else { 
  echo "cdup not successful\n"; 
} 
echo ftp_pwd($ftp); // / 
ftp_close($ftp); 
?>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);
?>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 ;)