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中文网其他相关文章!