在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
命令并指定相應的參數。