4

PHP関数ssh2_scp_sendを使用して、あるサーバーから別のサーバーにファイルを転送しています。興味深いのは、許可を 8 進形式 (つまり 0644) で直接記述した場合、すべてが正常に機能することです。代わりにこれを逆コンマで囲むか、バリアベルを使用すると、これは機能しなくなります。

より明確にするために:これは機能します:ssh2_scp_send($conn, $localFile, $remoteFile, 0644);

動作しません:ssh2_scp_send($conn, $localFile, $remoteFile, "0644");

動作しません:$permission=0644;ssh2_scp_send($conn, $localFile, $remoteFile, $permission);

なぜこれが事実なのか、誰にも分かりますか?

4

2 に答える 2

2

decoct()チャンスを与えてください。これがうまくいくかどうかはわかりませんが、試すことができます。もう1つ試すことができるのは、アクセス許可の値を次の定数に格納することです。define()

于 2010-12-18T00:25:21.063 に答える
1

文字列は10進数として解釈される場合があります。

また、どのタイプ$permissionですか?使っvar_dump()てみてください。文字列かもしれません。

$a = 0644;

$b = (int) "0644";

var_dump($a, $b); // int(420), int(644)

codepad.orgでご覧ください

于 2010-12-18T00:20:12.173 に答える