Получить результат от ssh2_exec

У меня есть script, который делает SSH-соединение с сервером (это прекрасно работает). Теперь я хочу выполнить команду и повторить результат, полученный из этой команды.

Итак, я делаю это:

$stream = ssh2_exec($conn, 'php -v');

но я не могу заставить его показать ответ, var_dump возвращает resource(3) of type (stream).

Я попытался использовать:

$stream = ssh2_exec($conn, 'php -v');
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);

но $stream_out возвращает пустую строку.

Итак, можно ли отпечатать ответ в результате script?

Ответ 1

Хорошо, я нашел решение, поэтому я отправляю его для дальнейшего использования

Итак, чтобы вывести результат команды, выполняемой 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);

Ответ 2

добавить:

echo stream_get_contents($stream);

результатом является STREAM, и вы должны сначала получить его содержимое...

поток-выборка предназначен только для извлечения альтернативных подпотоков... (afaik)