У меня есть объект для задач, а на __deconstruct() он предназначен для выполнения некоторых более длинных задач очистки после того, как остальная страница уже загружена. К сожалению, он буферизует вывод и не отправляет его до завершения заданий (в задачах ничего не печатается).Отключение буферизации вывода в PHP
Я прочитал http://www.php.net/flush и попробовал все предложения там. Очевидно, я попытался отключить output_buffering в php.ini. Я отключил deflate_module, сжатие zlib выключено, не имеет mod_gzip. Вызов flush() или ob_flush() не имеет никакого эффекта и не позволяет implicit_flush.
Я просто запускаю XAMPP (в настоящее время apache 2.2.17, php 5.3.4) под Windows Server 2008 R2. PHP запускается как модуль.
И да, я мог бы настроить небольшой взлом AJAX для запуска диспетчера задач или даже настроить запланированную задачу для выполнения этой конкретной задачи, но выходная буферизация тоже была проблемой в другом месте. Хотелось бы, чтобы его иногда уводили.
С аналогичной теме, кто-то предложил посмотреть, что следующий будет делать:
<?php
while (TRUE)
{
echo 'x';
flush();
sleep(1);
}
?>
Как и ожидалось, страница отображает ничего до максимального времени выполнения не будет достигнуто, в какой момент она очищает буфер.
Это стало очень неприятно. У кого-нибудь есть идеи, которые все еще могут вызвать его буферизацию?
Можете ли вы подтвердить, что вывод по-прежнему буферизуется, а браузер просто ничего не отображает (например, IE ничего не отобразит, пока не получит некоторое количество байтов)? –
выполняет эту функцию http://php.net/manual/en/function.ob-get-level.php return 0? – dqhendricks
вы можете попробовать это, если это поможет http://in3.php.net/manual/en/function.ob-end-flush.php –