在 PHP 中,popen()
函數用于打開一個進程文件指針,從而與進程進行交互
<?php
// 要執行的命令
$command = "ls -la";
// 打開進程文件指針
$process = popen($command, "r");
if (!$process) {
echo "Error: Unable to execute the command.\n";
exit;
}
// 讀取進程輸出
while (!feof($process)) {
echo fread($process, 4096);
}
// 關閉進程文件指針
pclose($process);
?>
在這個示例中,我們使用 popen()
函數執行了一個 ls -la
命令。然后,我們使用 fread()
函數從進程文件指針中讀取輸出,直到文件結束(feof()
)。最后,我們使用 pclose()
函數關閉進程文件指針。
如果你需要在多個進程中同步執行任務,可以考慮使用多線程或協程。在 PHP 中,可以使用 pthreads 擴展來實現多線程,或者使用 Swoole 擴展來實現協程。這些擴展提供了更高級的同步機制,如互斥鎖、信號量等。