16

サーバーへの SSH 接続を行うスクリプトがあります (これは正常に動作します)。ここで、コマンドを実行し、このコマンドから取得した結果をエコーし​​ます。

だから私はこれを行います:

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

しかし、応答を表示することはできませvar_dumpresource(3) of type (stream)

私は使用しようとしました:

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

しかし、$stream_out空の文字列を返します。

スクリプトの結果として応答を出力することは可能ですか?

4

2 に答える 2

49

解決策を見つけたので、今後の参考のために投稿します

したがって、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);
于 2012-08-23T15:12:20.397 に答える
2

追加:

echo stream_get_contents($stream);

結果はSTREAMであり、最初にその内容を取得する必要があります...

stream-fetch は、代替サブストリームを取得するためだけのものです... (afaik)

于 2012-08-23T07:20:05.000 に答える