У меня есть сценарий, который делает 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
возвращает пустую строку.
Так можно ли распечатать ответ в результате сценария?
Хорошо, я нашел решение, поэтому я отправляю его для дальнейшего использования
Поэтому для вывода результата команды, выполняемой 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);
Добавить:
echo stream_get_contents($stream);
результатом является STREAM, и вы сначала должны получить его содержимое …
stream-fetch предназначен только для извлечения альтернативных подпотоков … (afaik)