phpseclibを使用してsFTPサーバー上のファイルの権限を変更するにはどうすればよいですか?
質問
$ sftp-> chmod( '0755'、" file.zip");
と $ sftp-> chmod( '0755'、" file。 zip");
ただし、どちらの場合も、アクセス許可は代わりに363に設定されています。
解決
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をモデルにしています)
他のヒント
推測では、パーミッションは1363です。つまり、octal(755)です。完全な推測ですが、chmod関数は8進数モードではなく10進数モードを取ることをお勧めします。
使用できます
$sftp->chmod(0755, $file);
phpseclib chmod()
関数に文字列として許可を入力しないでください。
所属していません StackOverflow