PHP ssh2_scp_send用单引号括起来的远程文件名

时间:2012-10-11 23:23:04

标签: php scp

我正在向SCP写一个代码,从Solaris 10机器到路由器的文件(不可能更简单)。  这是代码:

<?php
$src = "test.txt";
$trg = "test.txt";

echo "Connecting...\n";
$connection = ssh2_connect('myrouter',22);

echo "Authenticating...\n";
ssh2_auth_password($connection, 'mylogin', 'mypassword');

echo "Sending...\n";
ssh2_scp_send($connection, $src, $trg);
?>

这很好用,但远程文件名搞砸了:

10/11/2012  10:57p                  15 'test.txt'

请注意文件名test.txt周围的单引号。

当我使用Solaris SCP时,一切正常。这是命令:

solaris10$ scp test.txt mylogin@myrouter:test.txt

远程文件名如下所示:

10/11/2012  11:10p                  15 test.txt

所以问题似乎仅限于PHP。

有没有人有类似的问题?我应该从哪里开始寻找?

远程文件系统是FAT32。

谢谢你, PN。

2 个答案:

答案 0 :(得分:0)

此页面上的底部评论http://www.php.net/manual/en/function.ssh2-scp-send.php指的是您可能遇到的问题;

您可以将$trg设置为完整的远程服务器路径吗?

$trg = "/var/www/test.txt";

$trg = "/test.txt";

答案 1 :(得分:0)

使用ssh2_scp_send()时遇到了同样的问题。但是,我切换到使用ssh2_sftp()和fwrite(),问题就消失了。请参阅http://www.php.net/manual/en/function.ssh2-sftp.php页面上的评论中的示例。