оротко суть проблемы можно изложить так: очень часто те данные, которые вы получаете, например, из базы данных, должны фигурировать в тексте HTML-страницы гораздо ранее того участка программы, который занимается добычей этих данных. Например, заголовок страницы, задаваемый тэгом <title>, зачастую является содержимым какого-либо поля таблицы БД, а блок программы, который обращается к БД, расп ...
оротко суть проблемы можно изложить так: очень часто те данные, которые вы получаете, например, из базы данных, должны фигурировать в тексте HTML-страницы гораздо ранее того участка программы, который занимается добычей этих данных. Например, заголовок страницы, задаваемый тэгом <title>, зачастую является содержимым какого-либо поля таблицы БД, а блок программы, который обращается к БД, расположен гораздо позже вывода заголовка страницы.
Что делать? Ответ простой - читать документацию. На функции ob_*, начиная с ob_start()
Оказывается, что в PHP есть возможность не сразу выдавать результат работы скрипта браузеру, а сохранять в специальном месте, именуемом Output Buffer (буфер вывода). При этом в PHP есть функции, которые позволяют изменять его содержимое. Еще одним аргументом за ob_start() в самом начале программы является возможность установки различных HTTP-заголовков, например, cookies, в произвольном месте скрипта, а не в самом его начале.
Кстати, в PHP есть возможность "сжать" (заархивировать) результат работы вашего скрипта, дабы уменьшить количество трафика, гуляющего по сети - для этого нужно вызвать функцию ob_start с параметром "ob_gzhandler": ob_start("ob_gzhandler"
; Естественно, если браузер не поддерживает сжатый контент - ваша страница будет передана ему без изменений.