PHPWales 2020 - June 3rd to June 4th

ssh2_sftp_rename

(PECL ssh2 >= 0.9.0)

ssh2_sftp_renameリモートファイルを改名する

説明

ssh2_sftp_rename ( resource $sftp , string $from , string $to ) : bool

リモートファイルシステム上のファイルを改名します。

パラメータ

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');
?>

参考

  • rename() - ファイルをリネームする

add a note add a note

User Contributed Notes 2 notes

up
3
Andr Ribas
2 years ago
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);
?>
up
2
thomas dot hebinck at digionline dot de
8 years ago
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."
To Top