Я получаю необъяснимую ошибку «Заголовки, уже отправленные по строке # ...» на те две строки, которые выполняют «эхо ...» в приведенном ниже коде.Ошибка с буферизацией вывода и FirePHP
Упрощенная версия корпуса:
<?php
ob_start();
//Initializing FirePHP...
include_once(F_FS_PATH."lib/FirePHPCore/fb.php");
// <--- I've also tried to move the ob_start(), after the FirePHP init,
// <--- instead before it. But it made no difference.
?>
<html>
<div>A lots of HTML (and php) code goes here... Actually my entire page.
FirePHP is also used here many times by multiple invocations
of the function fb('debug text');</div>
</html>
<?php
$all_page_content=ob_get_clean();
if ($GLOBALS["marketing_enabled"])
echo marketingReplaceContent($all_page_content);
else
echo $all_page_content;
ob_flush(); flush();
//Do some other non-printing - but slow stuff.
do_the_silent_slow_stuff_Now();
// <--- presumably the php execution ends here.
?>
Я не могу понять, почему FirePHP пытается сделать что-то после завершения страницы после того как я напечатать буфер и промыть его? Или что он пытается? Как я могу справиться с этой проблемой? :(
Что вы делаете в 'do_the_silent_slow_stuff_Now()'? Если есть какой-либо вызов fire fire, он попытается отправить заголовки, которые не будут работать, поскольку вы уже отправили вывод с помощью 'flush()'. –
hehe :) Да. У меня был один вызов fb() в do_the_silent_slow_stuff_Now(). Как мне не приходило в голову, что проблема была там. Так просто! Я ожидал, что проблема будет где-то до эхо-заявлений, но так нелогично смотреть туда. В любом случае, напишите это как ответ на мой вопрос, я буду отмечать его как ответ. Может быть полезно, чтобы какой-то googler был сбит с толку, как я :) – PatlaDJ