Exec() 中的PHP 錯誤處理與StdErr
在PHP 中,exec() 函數執行指令並傳回結果,包括如果執行成功則回傳URL。但是,您可能還想透過標準錯誤 (StdErr) 流存取錯誤訊息。操作方法如下:
處理 StdErr 的一種方法是透過 proc_open 函數,它提供了對命令執行的更多控制。考慮以下範例:
// Initialize I/O descriptors $descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"] // stderr ]; // Execute the command using the descriptors $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); // Read from stdout and stderr pipes $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]); // Output the content of stdout and stderr echo "stdout :\n"; var_dump($stdout); echo "stderr :\n"; var_dump($stderr);
在此範例中,使用指定的描述符執行 ./test.sh,並擷取 stdout 和 stderr 的輸出。執行時,腳本將分別顯示 stdout 和 stderr 內容。
透過使用 proc_open,您可以有效處理 StdErr 並存取 PHP 腳本中命令執行期間產生的任何錯誤訊息。
以上是如何從 PHP 中的 `exec()` 擷取標準錯誤 (StdErr)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!