PHP ssh2_scp_send 文件权限

发布于 2024-10-08 08:39:09 字数 420 浏览 5 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

离去的眼神 2024-10-15 08:39:09

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()

笨死的猪 2024-10-15 08:39:09

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

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

$a = 0644;

$b = (int) "0644";

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

在 codepad.org 上查看

The string may be interpreted as decimal.

Also, what type is $permission? Try using var_dump() on it. It may be a string too.

$a = 0644;

$b = (int) "0644";

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

See it on codepad.org

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文