An already existing file will NOT be overwritten.
http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt
"It is an error if there already exists a file with the name specified by newpath."
(PECL ssh2 >= 0.9.0)
ssh2_sftp_rename — Bir uzak dosyanın ismini değiştirir
Uzak dosya sistemindeki bir dosyanın ismini değiştirir.
sftp
ssh2_sftp() tarafından açılmış bir SSH2 SFTP özkaynağı.
eskisi
İsmi değiştirilecek dosyanın yolu.
yenisi
Dosyanın yeni ismi.
Örnek 1 - SFTP üzerinden bır dosyanın ismini değiştirmek
<?php
$baglanti = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($baglanti, 'birey', 'parola');
$sftp = ssh2_sftp($baglanti);
ssh2_sftp_rename($sftp, '/home/birey/eskisi', '/home/birey/yenisi);
?>
An already existing file will NOT be overwritten.
http://www.openssh.com/txt/draft-ietf-secsh-filexfer-02.txt
"It is an error if there already exists a file with the name specified by newpath."
For some unknown reason we weren't able to rename the remote file using sftp_rename function. Instead we've used the following code:
<?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);
?>