Способ получить собственный вывод stderr в сценарии PHP - PullRequest
2 голосов
/ 13 марта 2012

Я много гуглил, но все статьи, которые я нашел, о том, как писать в STDERR или как получить STDERR из других процессов, выполняемых с exec, shell_exec, proc_open и т. Д..

Но я хочу знать, как я могу получить свой собственный скрипт STDERR?
(я пишу веб-интерфейс для своего скрипта CLI и хочу использовать все файлы как «черный ящик»).захватить STDERR и вернуть JSON клиенту)?

1 Ответ

1 голос
/ 13 марта 2012

Создайте свой собственный обработчик ошибок и напишите содержимое в любом месте:

$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 вместо записи в него, но я не уверен, насколько хорошо это работает.

...