4

我正在使用 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);

有人知道为什么会这样吗?

4

2 回答 2

2

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

于 2010-12-18T00:25:21.063 回答
1

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

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

$a = 0644;

$b = (int) "0644";

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

在 codepad.org 上查看

于 2010-12-18T00:20:12.173 回答