Получить результат от 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)