PHP ssh2_scp_send 文件权限
我正在使用 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);
有人知道为什么会出现这种情况吗?
I am using the PHP function ssh2_scp_send
to transfer files from one server to another. The interesting things is that if I write the permission in it's octal form (ie 0644) directly everything works fine. If I instead enclose this in inverted commas or use a variabel this does not work any more.
To be clearer:
This works: ssh2_scp_send($conn, $localFile, $remoteFile, 0644);
Does NOT work: ssh2_scp_send($conn, $localFile, $remoteFile, "0644");
Does NOT work: $permission=0644;ssh2_scp_send($conn, $localFile, $remoteFile, $permission);
Anybody has any idea why this is the case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
给
decoct()
一个机会。我不确定这是否有效,但你可以尝试一下。您还可以尝试的另一件事是使用
define()
将权限值存储到常量中Give
decoct()
a chance. I'm not sure this will work, but you can try.One more thing you can try is to store permissions values into constants with
define()
该字符串可能被解释为十进制。
另外,
$permission
是什么类型?尝试对其使用var_dump()
。它也可能是一个字符串。在 codepad.org 上查看
The string may be interpreted as decimal.
Also, what type is
$permission
? Try usingvar_dump()
on it. It may be a string too.See it on codepad.org