【问题标题】:Output ssh2 stream per line每行输出 ssh2 流
【发布时间】:2014-05-31 01:47:08
【问题描述】:

我是 ssh2 的 PHP 新手,需要一些帮助。

我正在尝试逐行回显 php ssh2 输出流

if($ssh = ssh2_connect('127.0.0.1', 22)) {
    if(ssh2_auth_password($ssh, 'root', 'password')) {
        $stream = ssh2_exec($ssh, 'ifconfig');
        stream_set_blocking($stream, true);
        $data = '';
        while($buffer = fread($stream, 4096)) {
            $data .= $buffer;
        }
        fclose($stream);
        echo $data; // user
    }
}

但是输出没有逐行显示。我需要做什么才能像 ssh 一样逐行获取输出?

【问题讨论】:

    标签: php ssh libssh2


    【解决方案1】:

    使用fgets()。它将读取缓冲的行:

    while($line = fgets($stream)) {
        echo $line;
    }
    

    【讨论】:

    • 您好,它给出了相同的结果。不是逐行输出
    • @Santu Roy - hek2mgl 的回答应该有效。每当遇到新行时它都会返回。也就是说,如果您在网络浏览器中输出,则需要在其周围放置<pre> 标签。我想你也可以做 PHP 的 nl2br,但我认为<pre> 标签会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2015-07-25
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多