Я не совсем понимаю, для чего это нужно, но это не причина, чтобы не публиковать ответ.
Вы можете использовать обратный вызов ob_start()
, чтобы он обрабатывал частичное содержимое. Все, что вам нужно сделать, это установить ob_implicit_flush()
сразу после инициализации. Теперь обычно обратный вызов представляет собой простую функцию in-out, но вы можете сделать ее настолько сложной, насколько вам нужно, с помощью:
class ob_callback {
function __invoke($part, $end_flag_0x04) {
return "+$part";
// or map to $stream->filter($in, $out, &$consumed, $closing)
}
function __destruct() { /* cleanup */ }
}
ob_start(new ob_callback, 2);
ob_implicit_flush(TRUE);
Я не уверен, как будет выглядеть потоковое использование. Но я думаю, что нет другого способа перехватить стандартный вывод PHP. Обратите внимание, что неявный сброс не будет работать на CLI.