从ssh2_exec获得结果

acr*_*bat 14 php

我有一个脚本,它与服务器建立SSH连接(这很好).现在我想执行一个命令并回显我从这个命令得到的结果.

所以我这样做:

$stream = ssh2_exec($conn, 'php -v');
Run Code Online (Sandbox Code Playgroud)

但我不能让它显示回应,var_dump返回resource(3) of type (stream).

我试过用:

$stream = ssh2_exec($conn, 'php -v');
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
Run Code Online (Sandbox Code Playgroud)

但是$stream_out返回一个空字符串.

那么可以根据脚本打印响应吗?

acr*_*bat 41

好的,我找到了解决方案,所以我发布它以备将来参考

因此,要输出ssh2_exec执行的命令的结果,您应该使用以下代码设置

$stream = ssh2_exec($conn, 'php -v');
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);
Run Code Online (Sandbox Code Playgroud)