exec
函數在 PHP 中允許你執行外部命令
shell_exec
函數:shell_exec
函數會返回命令的完整輸出,你可以通過傳遞一個參數來設置輸出的格式。例如,你可以使用 echo
命令將輸出轉換為可讀的文本:
$output = shell_exec('echo "Hello, World!"');
echo "<pre>$output</pre>";
passthru
函數:passthru
函數會直接將命令的輸出發送到瀏覽器,不會經過處理。這對于需要實時查看輸出的場景非常有用。例如:
passthru('echo "Hello, World!"');
proc_open
函數:proc_open
函數提供了更多的靈活性,允許你與命令進行交互,例如讀取命令的輸出、向命令傳遞參數等。例如:
$descriptorspec = array(
0 => array("pipe", "r"), // 標準輸入,子進程從此管道中讀取數據
1 => array("pipe", "w"), // 標準輸出,子進程向此管道中寫入數據
2 => array("pipe", "w") // 標準錯誤,子進程向此管道中寫入錯誤信息
);
$process = proc_open('echo "Hello, World!"', $descriptorspec, $pipes);
if (is_resource($process)) {
fclose($pipes[0]); // 不需要向子進程傳遞任何輸入,所以關閉此管道
$output = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$error_output = stream_get_contents($pipes[2]);
fclose($pipes[2]);
proc_close($process);
echo "<pre>$output</pre>";
echo "<pre>$error_output</pre>";
}
這些方法都可以讓你在 PHP 中處理可理解性的輸出。你可以根據具體需求選擇合適的方法。