Заголовки HTTP и буферизация вывода
Буферизация вывода может помочь решить наиболее общую проблему, связанную
с функцией header, не говоря
уже о session_start и
set_cookie. Обычно, если
вы вызываете любую из этих функций после того, как начался вывод страницы, вы
получите противное сообщение об ошибке. При включенной буферизации вывода
единственным типом вывода, избегающим буферизации, являются
HTTP-заголовки. Используя ob_start в самом начале
выполнения вашего приложения, вы можете посылать заголовки в любой понравившейся
точке программы, не сталкиваясь с обычными ошибками. Затем, как только вы будете
уверены, что больше выводить HTTP-заголовки не потребуется, вы можете
сразу же вывести содержимое страницы из буфера.
(прим. переводчика: следует заметить что подобное использование данной
функции крайне неоправдано. В большинстве случаев необходимости в использовании
буферизации вывода для избавления ошибок указанного типа просто не существует и
всё с лёгкостью может быть исправлено правильным проектированием
приложения)