proc_open
函數是PHP中用于執行外部進程的函數。它允許你啟動一個新的進程,并與該進程進行交互,包括向其輸入數據、讀取其輸出以及獲取其返回值。
具體用法如下:
$descriptorspec = array(
0 => array("pipe", "r"), // 標準輸入
1 => array("pipe", "w"), // 標準輸出
2 => array("file", "/tmp/error-output.txt", "a") // 標準錯誤輸出
);
$process = proc_open('ls', $descriptorspec, $pipes);
if (is_resource($process)) {
fwrite($pipes[0], "input data\n");
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
$return_value = proc_close($process);
echo "command returned $return_value\n";
}
在以上示例中,proc_open
函數啟動了ls
命令,將其標準輸出和標準錯誤輸出重定向到文件和管道中。然后通過管道向進程發送輸入數據,并讀取其輸出。最后,使用proc_close
函數關閉進程并獲取其返回值。