Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
phpseclib-SSH2流结果来自命令?_Php_Phpseclib - Fatal编程技术网

phpseclib-SSH2流结果来自命令?

phpseclib-SSH2流结果来自命令?,php,phpseclib,Php,Phpseclib,我正在使用phpseclib将ssh连接到远程设备并下载文件。 这是可行的,当它完成时,它会显示它下载的文件列表 然而,我希望它显示每个文件名,因为它的下载 我使用的代码是: $ssh = new Net_SSH2('192.168.0.1'); if (!$ssh->login('user', 'password')) { exit('Login Failed'); } function output($str) { ec

我正在使用phpseclib将ssh连接到远程设备并下载文件。 这是可行的,当它完成时,它会显示它下载的文件列表

然而,我希望它显示每个文件名,因为它的下载

我使用的代码是:

    $ssh = new Net_SSH2('192.168.0.1');
    if (!$ssh->login('user', 'password')) {
        exit('Login Failed');
    } 
    function output($str) {
        echo "$str";
    }


    $cmd = "getfiles";
    $res = $ssh->exec($cmd, "output"); 
如果我在远程设备中使用putty和SSH,然后运行
getfiles
,它将在处理文件时在新行上显示每个文件名

phpseclib似乎只是显示最终的结果,而不是实际的进展

有没有办法让它显示现场进度


谢谢

我通过如下更新输出函数实现了这一点

function output($str) {
    flush();  ob_flush();
    echo "$str<br>";
}
函数输出($str){
冲水;
回声“$str
”; }

现在输出显示在新的一行。

嗨,Tom,我不能从您的问题中很清楚地看出:您正在使用ssh相关代码吗?还是你在用?还是别的?@summea我在用phpseclib。我现在通过在输出函数中添加一个刷新来实现这一点。很高兴听到它在工作!如果你有时间,可以把你的发现作为你问题的答案吗?