在PHP脚本中获取自己的stderr输出的方法
我在谷歌上搜索了很多,但我找到的所有文章都是关于如何编写在PHP脚本中获取自己的stderr输出的方法,php,stderr,Php,Stderr,我在谷歌上搜索了很多,但我找到的所有文章都是关于如何编写STDERR,或者如何从使用exec,shell\u exec,proc\u open执行的其他进程中获取STDERR,等等 但是我想知道,我怎样才能得到我自己的脚本的STDERR? (我在CLI脚本中编写了一个web前端,并希望使用所有文件作为“黑匣子”来捕获STDERR,并将JSON返回到客户端)?创建自己的错误处理程序,并在任何需要的地方编写内容: $log = array(); set_error_handler(function
STDERR
,或者如何从使用exec
,shell\u exec
,proc\u open
执行的其他进程中获取STDERR
,等等
但是我想知道,我怎样才能得到我自己的脚本的STDERR
?(我在CLI脚本中编写了一个web前端,并希望使用所有文件作为“黑匣子”来捕获
STDERR
,并将JSON
返回到客户端)?创建自己的错误处理程序,并在任何需要的地方编写内容:
$log = array();
set_error_handler(function ($no, $str, $file, $line, array $context) use ($log) {
$message = "$no: $str in $file on line $line";
$log[] = $message;
fwrite(STDERR, $message);
});
您可能会尝试从
STDERR
读取,而不是向其写入,但我不确定这是否有效。也许这会有所帮助:我不想修改“黑匣子”的源代码。我想捕获STDERR。您想从命令行而不是脚本本身捕获STDERR吗?我想从脚本本身捕获STDERR。例如,我有一个输出到STDERR的lib,但是我不能(想要)更改lib以将输出存储在某个数组中。