1

やってみ$sftp->chmod('0755', "file.zip");$sftp->chmod('0755', "file.zip");

ただし、どちらの場合も、代わりに権限が363に設定されています。

4

3 に答える 3

1

0755と「0755」は、このように示されているものと同じではありません。

<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;

そのため、0755前後の一重引用符を削除してみてください。

phpseclibがパーミッションが8進値として表されることを期待する理由(「0755」は8進値ではなく10進値にキャストされます)は、それがその方法ftp_chmodであり、それNet_SFTP::chmod()がモデル化されているためです。(実際、phpseclibのSFTP APIのほとんどすべては、PHPのFTP拡張APIをモデルにしています)

于 2009-11-27T17:16:58.037 に答える
1

推測では、パーミッションは1363です。言い換えると、octal(755)です。これは完全な推測ですが、chmod関数が8進数モードではなく10進数モードを使用していることをお勧めします。

于 2009-11-27T14:23:13.563 に答える
1

使用できます

$sftp->chmod(0755, $file);

phpseclibchmod()関数に文字列として権限を入力しないでください。

于 2015-10-26T11:00:26.113 に答える