То, что производит, буферизует и почему каждый использует его в PHP?
Буферизация вывода для веб-разработчиков, руководство для начинающих :
Без буферизации вывода (по умолчанию) ваш HTML-код отправляется в браузер в частей по мере того, как PHP обрабатывает ваш скрипт. При буферизации вывода ваш HTML-код сохраняется в переменной и отправляется в браузер как один фрагмент в конце вашего скрипта.
Преимущества буферизации вывода для веб-разработчиков
- Включение только буферизации вывода уменьшает время, необходимое для загрузки и рендеринга нашего HTML-кода, поскольку он не отправляется в браузер по частям, когда PHP обрабатывает HTML.
- Все причудливые вещи, которые мы можем делать со строками PHP, теперь мы можем делать со всей нашей HTML-страницей как с одной переменной.
- Если вы когда-либо сталкивались с сообщением «Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (выводом)» при настройке файлов cookie, вы будете рады узнать, что буферизация вывода - это ваш ответ.
Функции управления выводом позволяют управлять отправкой вывода из скрипта. Это может быть полезно в нескольких различных ситуациях, особенно если вам нужно отправить заголовки в браузер после того, как ваш скрипт начал вывод данных. Функции управления выводом не влияют на заголовки , отправленные с помощью header () или setcookie (), только функции, такие как echo () и данные между блоками Код PHP .
http://php.net/manual/en/book.outcontrol.php
Дополнительные ресурсы:
Как следует из названия, здесь буфер памяти, используемый для управления отображением вывода скрипта.
Вот один очень хороший учебник по теме
Буферизация вывода используется PHP для повышения производительности и для выполнения нескольких трюков.
Вы можете заставить PHP хранить весь вывод в буфере и выводить его сразу, улучшая производительность сети.
В некоторых ситуациях вы можете получить доступ к содержимому буфера, не отправляя его обратно в браузер.
Рассмотрим этот пример:
<?php
ob_start( );
phpinfo( );
$output = ob_get_clean( );
?>
В приведенном выше примере вывод записывается в переменную вместо того, чтобы отправлять его в браузер.
Рассмотрим этот пример:
<?php
ob_start( );
echo "Hello World";
if ( $some_error )
{
header( "Location: error.php" );
exit( 0 );
}
?>