在PHP中,popen()
函数用于打开一个进程文件指针,从而与进程进行通信。要实现双向通信,你需要在打开进程时指定一个读取和写入的管道。下面是一个简单的示例,展示了如何使用popen()
实现双向通信:
<?php
// 创建一个子进程,执行 "bash" 命令
$process = popen("bash", "r+");
if (!$process) {
die("Failed to start the process.");
}
// 向子进程发送数据
fwrite($process, "echo 'Hello from parent'\n");
// 从子进程读取数据
$output = stream_get_contents($process);
echo "Output from child: " . $output;
// 关闭进程
pclose($process);
?>
在这个示例中,我们创建了一个子进程来运行bash
命令。然后,我们使用fwrite()
函数向子进程发送数据,并使用stream_get_contents()
函数从子进程读取数据。最后,我们使用pclose()
函数关闭进程。
请注意,这个示例仅适用于运行bash
的Linux系统。如果你需要在Windows上实现类似的功能,你可以使用cmd.exe
命令并指定相应的参数。