在 PHP 中,使用 exec()
函數執行外部命令時,可以通過以下方法提高輸出的可讀性:
shell_exec()
函數:shell_exec()
函數會返回命令的完整輸出,而不僅僅是最后一行。這樣,你可以更容易地處理命令的輸出。例如:$output = shell_exec('your_command_here');
echo "<pre>$output</pre>";
passthru()
函數:passthru()
函數會直接將命令的輸出發送到瀏覽器,保留原始的格式。這對于需要實時查看輸出的場景非常有用。例如:passthru('your_command_here');
proc_open()
函數:proc_open()
函數提供了更多的控制選項,例如執行命令時的工作目錄、環境變量等。你可以使用 proc_open()
函數捕獲命令的輸出,并將其存儲在數組中,以便于處理。例如:$descriptorspec = array(
0 => array("pipe", "r"), // 標準輸入,子進程從此管道中讀取數據
1 => array("pipe", "w"), // 標準輸出,子進程向此管道中寫入數據
2 => array("pipe", "w") // 標準錯誤,子進程向此管道中寫入數據
);
$process = proc_open('your_command_here', $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]);
$return_value = proc_close($process);
echo "<pre>$output</pre>";
echo "<pre>$error_output</pre>";
}
通過這些方法,你可以更容易地處理 exec()
函數的輸出,提高其可讀性。