ssh2_sftp_rename
(PECL ssh2 >= 0.9.0)
ssh2_sftp_rename — Rename a remote file
Description
bool ssh2_sftp_rename
( resource
$sftp
, string $from
, string $to
)Renames a file on the remote filesystem.
Parameters
-
sftp
-
An SSH2 SFTP resource opened by ssh2_sftp().
-
from
-
The current file that is being renamed.
-
to
-
The new file name that replaces
from
.
Return Values
Returns TRUE
on success or FALSE
on failure.
Examples
Example #1 Renaming a file via 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');
?>
- ssh2_auth_agent
- ssh2_auth_hostbased_file
- ssh2_auth_none
- ssh2_auth_password
- ssh2_auth_pubkey_file
- ssh2_connect
- ssh2_exec
- ssh2_fetch_stream
- ssh2_fingerprint
- ssh2_methods_negotiated
- ssh2_publickey_add
- ssh2_publickey_init
- ssh2_publickey_list
- ssh2_publickey_remove
- ssh2_scp_recv
- ssh2_scp_send
- ssh2_sftp_chmod
- ssh2_sftp_lstat
- ssh2_sftp_mkdir
- ssh2_sftp_readlink
- ssh2_sftp_realpath
- ssh2_sftp_rename
- ssh2_sftp_rmdir
- ssh2_sftp_stat
- ssh2_sftp_symlink
- ssh2_sftp_unlink
- ssh2_sftp
- ssh2_shell
- ssh2_tunnel
Коментарии
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);
?>