已存在的檔案將*不會*被覆寫。
http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt
「如果已存在名稱由 newpath 指定的檔案,則會發生錯誤。」
(PECL ssh2 >= 0.9.0)
ssh2_sftp_rename — 重新命名遠端檔案
範例 #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');
?>
已存在的檔案將*不會*被覆寫。
http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt
「如果已存在名稱由 newpath 指定的檔案,則會發生錯誤。」
由於某些未知原因,我們無法使用 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);
?>