ftp_rename() 函数用于在 FTP 服务器上重命名一个文件或目录。
该函数是 PHP FTP 扩展的一部分,使用前需要确保 FTP 扩展已启用,并且已经通过 ftp_connect() 或 ftp_ssl_connect() 建立了 FTP 连接。
ftp_rename ( resource $ftp_stream , string $oldname , string $newname ) : bool
| 参数 | 类型 | 描述 |
|---|---|---|
$ftp_stream |
resource | 必需的。FTP 连接的标识符,由 ftp_connect() 或 ftp_ssl_connect() 返回。 |
$oldname |
string | 必需的。要重命名的文件或目录的旧名称(在 FTP 服务器上的路径)。 |
$newname |
string | 必需的。新的名称(在 FTP 服务器上的路径)。 |
如果重命名成功,返回 true;如果失败,返回 false。
以下示例展示了如何连接 FTP 服务器并重命名一个文件。
<?php
// 连接 FTP 服务器
$ftp_server = "ftp.example.com";
$ftp_user = "username";
$ftp_pass = "password";
$conn = ftp_connect($ftp_server);
if (!$conn) {
die("无法连接到 $ftp_server");
}
// 登录
if (@ftp_login($conn, $ftp_user, $ftp_pass)) {
echo "连接成功\n";
} else {
die("登录失败");
}
// 重命名文件
$old_file = "public_html/oldfile.txt";
$new_file = "public_html/newfile.txt";
if (ftp_rename($conn, $old_file, $new_file)) {
echo "文件重命名成功:$old_file -> $new_file";
} else {
echo "文件重命名失败";
}
// 关闭连接
ftp_close($conn);
?>
同样,也可以重命名目录。
<?php
// 假设已经建立了 FTP 连接 $conn
$old_dir = "public_html/old_directory";
$new_dir = "public_html/new_directory";
if (ftp_rename($conn, $old_dir, $new_dir)) {
echo "目录重命名成功:$old_dir -> $new_dir";
} else {
echo "目录重命名失败";
}
?>
添加错误处理以确保代码健壮性。
<?php
$ftp_server = "ftp.example.com";
$ftp_user = "username";
$ftp_pass = "password";
$conn = ftp_connect($ftp_server, 21, 30); // 添加超时
if ($conn === false) {
die("FTP 连接失败");
}
if (!@ftp_login($conn, $ftp_user, $ftp_pass)) {
die("FTP 登录失败");
}
// 启用被动模式(根据服务器配置可能需要)
ftp_pasv($conn, true);
$oldname = "public_html/test.txt";
$newname = "public_html/renamed.txt";
if (ftp_rename($conn, $oldname, $newname)) {
echo "重命名成功。";
} else {
// 获取错误信息
$error = error_get_last();
echo "重命名失败。错误:" . $error['message'];
}
ftp_close($conn);
?>
/ 作为路径分隔符。ftp_rename() 之前,FTP 连接是活跃且已认证的。