SSH2返回“类型(流)的资源(2)”(PHP)

我正在尝试使用PHP的 ssh2 </ code>库从远程服务器运行SSH命令 使用 ssh2_exec </ code>函数。</ p>

我没有得到我想要的东西从SSH返回给我,我得到了这个:</ p>

 资源(2)类型(流)
</ code> </ pre>

有时 2 </ code>是 3 </ code> 如果这很重要。</ p>

以下是我尝试使用的代码:</ p>

 &lt;?php 

$ connection = ssh2_connect('ssh.example.com',22);

ssh2_auth_password($ connection,'root','password');

if($ output = ssh2_exec($ connection,'uptime')) {

var_dump($ output);

}
</ code> </ pre>


工作解决方案</ strong>: </ p>

 &lt;?php 

$ connection = ssh2_connect('ssh.example.com',22);

ssh2_auth_password($ connection,'root', 'password');

if($ output = ssh2_exec($ connection,'uptime')){

stream_set_blocking($ output,true);

echo stream_get_co ntents($ output);

}
</ code> </ pre>
</ div>

展开原文

原文

I'm attempting to run a SSH command from a remote server with PHP's ssh2 library using the ssh2_exec function.

Instead of getting what I want returned back to me from SSH, I get this:

resource(2) of type (stream)

Sometimes the 2 is a 3 if that matters.

Here is the code that I'm attempting to use:

<?php

$connection = ssh2_connect('ssh.example.com', 22);

ssh2_auth_password($connection, 'root', 'password');

if($output = ssh2_exec($connection, 'uptime')) {

    var_dump($output);

}

Working solution:

<?php

$connection = ssh2_connect('ssh.example.com', 22);

ssh2_auth_password($connection, 'root', 'password');

if($output = ssh2_exec($connection, 'uptime')) {

    stream_set_blocking($output, true);

    echo stream_get_contents($output);

}

1个回答



阅读文档:</ p>


返回值</ p>

成功时返回流,失败时返回FALSE。 </ p>
</ blockquote>

流</ a>是一个类似文件的对象。 您可以使用流功能或文件处理函数(例如<)来获取数据。 a href =“http://us.php.net/manual/en/function.fread.php”rel =“nofollow”> fread 。</ p>

例如</ p>

  $ string = stream_get_contents($ stream); 

$ line = stream_get_line($ stream);

$ fivebytes = fread($ stream,5); \ n </ code> </ pre>
</ div>

展开原文

原文

Read the documentation:

Return Values

Returns a stream on success or FALSE on failure.

A stream is a file-like object. You can get data from it with stream functions or file handle functions like fread.

E.g.

$string = stream_get_contents($stream);

$line = stream_get_line($stream);

$fivebytes = fread($stream, 5);

douwei1904
douwei1904 谢谢大家,我还要添加stream_set_blocking($ stream,true);
8 年多之前 回复
duanlvxi8652
duanlvxi8652 回波(stream_get_contents($流));
8 年多之前 回复
doushansu9012
doushansu9012 您可以使用stream_get_contents()来读取流,直到结束。
8 年多之前 回复
dongyu8694
dongyu8694 从来没有处理过“流”。 我究竟如何从“流”中获取数据?
8 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问