phpseclibを使用してsFTPサーバー上のファイルの権限を変更するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1809040

  •  05-07-2019
  •  | 
  •  

質問

$ 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()関数に文字列として許可を入力しないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top