PHP: ssh2_fetch_stream - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ssh2_fingerprint ssh2_exec

Last updated: Sat, 27 Jan 2007

view this page in

# ssh2_fetch_stream

(PECL)

ssh2_fetch_stream -- Fetch an extended data stream

## Description

resource ssh2_fetch_stream ( resource channel, int streamid )

Fetches an alternate substream associated with an SSH2 channel stream identified by `streamid`. The SSH2 protocol currently defines only one substream, STDERR, which has a substream ID of `SSH2_STREAM_STDERR` (defined as 1).

Пример 1. Opening a shell and retrieving the stderr stream associated with it.

`<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>`

See Also: ssh2_shell(), ssh2_exec(), and ssh2_connect()

add a note User Contributed Notes
ssh2_fetch_stream
Dennis K.
24-Jan-2007 04:28
`In addition to the last post from Ricardo Striquer:
Simple block the stream with stream_set_blocking(), and you dont have to sleep() the script...
<?php
stdout_stream = ssh2_exec($connection, "/bin/lssss -la /tmp");
$err_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDERR);
$dio_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDDIO);
stream_set_blocking($err_stream, true);
stream_set_blocking($dio_stream, true);
$result_err = stream_get_contents($err_stream));
$result_dio = stream_get_contents($dio_stream));
?>`
Ricardo Striquer (ricardophp yohoocombr)
18-Dec-2006 07:41
`I got a friend using those functions and he was not able to use this ssh2_fetch_stream function. First of all I got the ssh2_shell sample by webmaster at spectreanime dot com, but this function does not work with his sample, i believe thats because he use fwrite instead of ssh2_shell or ssh2_exec to run the command.
This sample below is to run under a command line and is fully functional. note that i add the sleep as advised by webmaster at spectreanime dot com
<?php
echo "Connexion SSH ";
if (!($connection=@ssh2_connect("69.69.69.69", 22))) {
echo "[FAILED]\n";
exit(1);
}
echo "[OK]\nAuthentification ";
if (!@ssh2_auth_password($connection,"root","YourPassword")) {
echo "[FAILED]\n";
exit(1);
}
echo "[OK]\n";
$stdout_stream = ssh2_exec($connection, "/bin/lssss -la /tmp");
sleep(1);
$stderr_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDERR);
echo "Erros encontrados!\n------------\n";
while($line = fgets($stderr_stream)) { flush(); echo $line."\n"; }
echo "------------\n";
while($line = fgets($stdout_stream)) { flush(); echo $line."\n";}
fclose($stdout_stream);
?>`
add a note
ssh2_fingerprint ssh2_exec

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST