ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_rename重命名远程文件

说明

ssh2_sftp_rename(资源 $sftp, 字符串 $from, 字符串 $to): 布尔值

重命名远程文件系统上的文件。

参数

sftp

ssh2_sftp() 打开的 SSH2 SFTP 资源。

from

正在重命名的当前文件。

to

替换 from 的新文件名。

返回值

成功时返回 true,失败时返回 false

范例

范例 #1 通过 sftp 重命名文件

<?php
$connection
= ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

参见

添加备注

用户贡献的备注 2 条备注

thomas dot hebinck at digionline dot de
12 年前
已经存在的文件不会被覆盖。

http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt

"如果已经存在一个名为 newpath 的文件,则为错误。"
Andr Ribas
7 年前
由于某种未知的原因,我们无法使用 sftp_rename 函数重命名远程文件。我们改用以下代码

<?php
$connection
= ssh2_connect('localhost', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$fromSftpUrl = "ssh2.sftp://{$sftp}/{$path_from}";
$toSftpUrl = "ssh2.sftp://{$sftp}/{$path_to}";

$success = rename($fromSftpUrl, $toSftpUrl);
?>
To Top