查询

ssh2_fetch_stream()函数—用法及示例

「 从SSH2会话中获取一个流 」


函数名称:ssh2_fetch_stream()

适用版本:PHP 5 >= 5.3.0, PECL ssh2 >= 0.10

函数描述:从SSH2会话中获取一个流

用法: resource ssh2_fetch_stream(resource $channel, int $streamid)

参数:

  • $channel: SSH2通道资源,通过ssh2_shell()或ssh2_exec()函数打开。
  • $streamid: 流ID,标识要获取的流的类型。

返回值: 成功时返回一个流资源,失败时返回false。

示例:

// 创建SSH2会话
$connection = ssh2_connect('example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

// 打开一个SSH2通道
$channel = ssh2_shell($connection, 'bash');

// 获取标准输出流
$stdout = ssh2_fetch_stream($channel, SSH2_STREAM_STDIO);

// 写入命令到标准输入流
fwrite($stdout, 'ls -l' . PHP_EOL);

// 读取命令输出
while ($line = fgets($stdout)) {
    echo $line;
}

// 关闭连接
fclose($stdout);
ssh2_disconnect($connection);

上述示例中,我们首先通过ssh2_connect()函数建立到远程主机的SSH2连接。然后使用ssh2_auth_password()函数进行身份验证。

接下来,我们通过ssh2_shell()函数打开一个SSH2通道,将其作为参数传递给ssh2_fetch_stream()函数,以获取标准输出流。

使用fwrite()函数将命令写入标准输入流,然后通过fgets()函数读取命令的输出,并将其逐行打印出来。

最后,我们关闭流资源和SSH2连接,释放资源。

请注意,此示例仅用于演示目的。在实际应用中,建议使用更安全的身份验证方法,如公钥身份验证。

补充纠错
上一个函数: ssh2_fingerprint()函数
下一个函数: ssh2_exec()函数
热门PHP函数
分享链接