PHP ftp_rename() 函数

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

示例

示例 1:重命名文件

以下示例展示了如何连接 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);
?>

示例 2:重命名目录

同样,也可以重命名目录。

<?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 "目录重命名失败";
}
?>

示例 3:错误处理

添加错误处理以确保代码健壮性。

<?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 用户有权限重命名目标文件或目录。
  • 路径分隔符:FTP 服务器通常使用正斜杠 / 作为路径分隔符。
  • 连接状态:确保在调用 ftp_rename() 之前,FTP 连接是活跃且已认证的。
  • 文件锁定:如果文件正被其他进程使用,重命名可能会失败。
  • 返回值:始终检查返回值以确定操作是否成功。

相关函数