【问题标题】:PHP ssh2_scp_send file permissionsPHP ssh2_scp_send 文件权限
【发布时间】:2011-05-27 10:15:24
【问题描述】:

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

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

【问题讨论】:

    标签: php scp


    【解决方案1】:

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

    【讨论】:

    • 太棒了,这确实为我指明了正确的方向:我需要 octdec () 函数!谢谢
    【解决方案2】:

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

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

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

    See it on codepad.org

    【讨论】:

    • 我如何将 0644 转换为 420,因为这似乎是系统想要的?
    • @Adrien Hingert 查看decoct() (see this answer)。
    猜你喜欢
    • 2011-04-21
    • 2014-10-26
    • 2010-09-28
    • 2016-07-17
    • 2012-01-06
    • 1970-01-01
    • 2015-12-31
    • 2015-04-03
    相关资源
    最近更新 更多