我使用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);
任何人都知道为什么会这样?
答案 0 :(得分:2)
给decoct()
一个机会。我不确定这会起作用,但你可以试试。
您可以尝试的另一件事是将权限值存储到define()
答案 1 :(得分:1)
字符串可以解释为十进制。
此外,$permission
是什么类型的?尝试使用var_dump()
。它也可能是一个字符串。
$a = 0644;
$b = (int) "0644";
var_dump($a, $b); // int(420), int(644)