PHP ssh2_scp_send文件权限

时间:2010-12-18 00:18:08

标签: php scp

我使用PHP函数ssh2_scp_send将文件从一台服务器传输到另一台服务器。有趣的是,如果我以八进制形式(即0644)直接写入权限,一切正常。如果我用倒置逗号将其括起来或使用变量,这将不再起作用。

更清楚: 这有效:ssh2_scp_send($conn, $localFile, $remoteFile, 0644);

不起作用:ssh2_scp_send($conn, $localFile, $remoteFile, "0644");

不起作用:$permission=0644;ssh2_scp_send($conn, $localFile, $remoteFile, $permission);

任何人都知道为什么会这样?

2 个答案:

答案 0 :(得分:2)

decoct()一个机会。我不确定这会起作用,但你可以试试。 您可以尝试的另一件事是将权限值存储到define()

的常量中

答案 1 :(得分:1)

字符串可以解释为十进制。

此外,$permission是什么类型的?尝试使用var_dump()。它也可能是一个字符串。

$a = 0644;

$b = (int) "0644";

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

See it on codepad.org