(PHP 4, PHP 5, PHP 7, PHP 8)
ftp_rename — Renames a file or a directory on the FTP server
ftp_rename() renames a file or a directory on the FTP server.
Returns true
on success or false
on failure. Upon failure (such as attempting to rename a non-existent
file), an E_WARNING
error will be emitted.
Version | Description |
---|---|
8.1.0 |
The ftp parameter expects an FTP\Connection
instance now; previously, a resource was expected.
|
Example #1 ftp_rename() example
<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';
// 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);
// Try to rename $old_file to $new_file
if (ftp_rename($ftp, $old_file, $new_file)) {
echo "Successfully renamed $old_file to $new_file\n";
} else {
echo "There was a problem while renaming $old_file to $new_file\n";
}
// Close the connection
ftp_close($ftp);
?>
Using "ftp_rename" to move files to other directories on server ftp
..
...
if(ftp_rename($conn_ftp, $xfiles[$i], "./dirx/".$xfiles[$i])) {
echo "File $xfiles[$i] moved to ./dirx";
} else {
echo "ERROR!!!. The file could not be moved";
}
...
..
#-->>h2m, bye
You want to make sure you check the existence of the new name before renaming files, because otherwise you could risk losing files. Just do a simple check with ftp_size with the new name. If it's !=-1, you're going to want to throw some kind of error, otherwise you'll be losing a file...
to rename the file or folder you should use ftp_chdir to select the current directory on ftp server or you should write the full path to file in old name and in new name
Ex. 1
<?php
// open the folder that have the file
ftp_chdir($conn_id, '/www/ftp-filemanager/');
// rename the file
ftp_rename($conn_id, 'file1.jpg', 'new_name_4_file.jpg');
?>
or write full path Ex. 2
<?
// rename the file
ftp_rename($conn_id, '/www/ftp-filemanager/file1.jpg', '/www/ftp-filemanager/new_name_4_file.jpg');
?>
This function isn't only able to rename files, but also folders. And it is not only able to rename them, but also move them, and, in the case of folders, their contents as well (so folders don't have to be empty to move). For example:
<?php
ftp_rename($conn_id, "./dir1/dir2/", "./dir3/");
?>
Now the folder dir2 (which prevously was in folder dir1) has moved to the same folder as dir1, and it has kept its original contents (the content just moved along).