pierre-alex
asked on
Evaluating a SSH2 stream using PHP
Hi Experts,
I am trying to evaluate the result of a SSH2 stream so I can branch to another section of my code based on the output. The connection to the server is working fine and I get the output but the evaluation does not work.
The section of code that does not work is:
if ($data == 'pierre' ) {
echo "Welcome";
}
Can you please have a look?
Thanks
Pierre-Alex
P.S. I am running
phpinfo()
PHP Version => 5.2.9
I am trying to evaluate the result of a SSH2 stream so I can branch to another section of my code based on the output. The connection to the server is working fine and I get the output but the evaluation does not work.
The section of code that does not work is:
if ($data == 'pierre' ) {
echo "Welcome";
}
Can you please have a look?
Thanks
Pierre-Alex
P.S. I am running
phpinfo()
PHP Version => 5.2.9
-------------- My code ---------------
// Set the command to execute
$command = 'whoami';
// Connect
if ($ssh = ssh2_connect('192.168.108.201', 22)) {
//Authenticate
if(ssh2_auth_password($ssh, 'pierre' , 'password')) {
//exec a command and return a stream
$stream = ssh2_exec($ssh, $command);
// force PHP to wait for the output
stream_set_blocking($stream, true);
// read the output into a variable
$data = '';
while($buffer = fread($stream, 4096))
$data .= $buffer;
}
// close the stream
fclose($stream);
// print the response
echo $data;
//evaluate the result
if ($data == 'pierre' ) {
echo "Welcome";
}
}
echo "End";
--------- What I get is ----------------
pierre
End
--------- What I should get is ----------------
pierre
Welcome
End
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks. That worked !
Is there a way to print the EOF character (for troubleshooting purposes)
Is there a way to print the EOF character (for troubleshooting purposes)
ASKER
dfendig
Just so you know I got a "time out" message with the other option :
or try this
while (!feof($stream)) {
$data .= fread($stream, 4096);
}
Rgds
Pierre
Just so you know I got a "time out" message with the other option :
or try this
while (!feof($stream)) {
$data .= fread($stream, 4096);
}
Rgds
Pierre
while (!feof($stream)) {
$data .= fread($stream, 4096);
}