函数名称: expect://()
适用版本: PHP 5, PHP 7
函数描述: expect:// 包装器是一个可以将 expect 库中的函数包装成 PHP 扩展的网络函数。使用它,可以在 PHP 环境中执行与 expect 库相应的功能,通过此函数可以产生连接到远程主机的网络流。
用法:
resource expect_popen ( string $command )
参数:
- command: 执行的命令字符串。
返回值: 成功时将返回包装后的资源流,失败时返回 false。
示例:
$stream = expect_popen("ssh user@example.com");
if ($stream === false) {
die("无法打开流!");
}
// 向远程主机发送命令并获取返回结果
fwrite($stream, "ls -l\n");
expect_expectl($stream, array(
array("file or directory", function($stream, $match) {
echo "远程主机文件目录: " . trim($match[0]) . "\n";
}),
array(">", function($stream, $match) {
echo "命令执行完成!";
})
));
// 关闭流
fclose($stream);
上述示例中,使用 expect_popen() 函数通过 SSH 连接到远程主机,并将命令 ls -l
发送至远程主机。之后,通过 expect_expectl() 函数获取远程主机的返回结果,并根据匹配的条件进行相应的处理。最后,关闭了流。
请注意,expect://() 函数需要 PHP 安装 expect 扩展库,并且相关的底层 expect 库也需要在系统中安装并可用。