函数名:expect_popen() 适用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8
函数说明:expect_popen() 函数使用了 expect 扩展库来执行命令,并返回一个能够用于读取和写入输出/输入流的资源句柄。
用法:
resource expect_popen ( string $command )
参数:
- command:要执行的命令及其参数,类似于在命令行中输入的命令。
返回值: 如果成功执行命令,函数将返回一个能够读取和写入输出/输入流的资源句柄,如果发生错误,将返回 false。
示例:
$stream = expect_popen('ssh user@remote_host');
if ($stream !== false) {
// 向远程主机发送命令
fwrite($stream, "ls -la\n");
// 读取远程主机的输出
$output = '';
while (($line = fread($stream, 4096)) !== false) {
$output .= $line;
}
echo $output;
// 关闭资源句柄
fclose($stream);
} else {
echo "执行命令失败";
}
上述示例首先调用 expect_popen() 打开了一个 ssh 连接,并获取了一个用于读写输出/输入流的资源句柄。然后,通过 fwrite() 向远程主机发送一个命令。接着使用 fread() 从输出流中读取输出,并将其存储在变量 $output 中。最后,关闭资源句柄并输出结果。如果 expect_popen() 执行失败,则会输出错误信息。请注意,这个示例是一个简单的展示,实际应用时可能需要更多的错误处理和安全措施。