如何在 PHP 中的 Exec() 之后访问 StdErr
在 PHP 中,exec() 函数执行命令并将其输出返回为一个字符串。但是,如果该命令产生错误,这些错误通常会被抑制并且不会显示。要处理此类错误,了解 stderr 流至关重要。
使用 proc_open 读取 StdErr
要在执行命令后访问 stderr,可以使用 proc_open() 函数,它提供了对执行过程的精细控制。它使您能够为 stdin、stdout 和 stderr 定义输入/输出流。
这是一个示例:
$descriptorspec = [ 0 => ["pipe", "r"], // stdin 1 => ["pipe", "w"], // stdout 2 => ["pipe", "w"], // stderr ]; $process = proc_open('./test.sh', $descriptorspec, $pipes, dirname(__FILE__), null); $stdout = stream_get_contents($pipes[1]); fclose($pipes[1]); $stderr = stream_get_contents($pipes[2]); fclose($pipes[2]);
通过从 $pipes[2] 流读取,您可以访问执行命令产生的 stderr 输出。
以上是使用 PHP 的 exec() 后如何捕获和处理 StdErr 输出?的详细内容。更多信息请关注PHP中文网其他相关文章!