То, что производит, буферизует?

То, что производит, буферизует и почему каждый использует его в PHP?

197
задан Trilarion 25 February 2015 в 10:17
поделиться

4 ответа

Буферизация вывода для веб-разработчиков, руководство для начинающих :

Без буферизации вывода (по умолчанию) ваш HTML-код отправляется в браузер в частей по мере того, как PHP обрабатывает ваш скрипт. При буферизации вывода ваш HTML-код сохраняется в переменной и отправляется в браузер как один фрагмент в конце вашего скрипта.

Преимущества буферизации вывода для веб-разработчиков

  • Включение только буферизации вывода уменьшает время, необходимое для загрузки и рендеринга нашего HTML-кода, поскольку он не отправляется в браузер по частям, когда PHP обрабатывает HTML.
  • Все причудливые вещи, которые мы можем делать со строками PHP, теперь мы можем делать со всей нашей HTML-страницей как с одной переменной.
  • Если вы когда-либо сталкивались с сообщением «Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (выводом)» при настройке файлов cookie, вы будете рады узнать, что буферизация вывода - это ваш ответ.
265
ответ дан 23 November 2019 в 05:15
поделиться

Функции управления выводом позволяют управлять отправкой вывода из скрипта. Это может быть полезно в нескольких различных ситуациях, особенно если вам нужно отправить заголовки в браузер после того, как ваш скрипт начал вывод данных. Функции управления выводом не влияют на заголовки , отправленные с помощью header () или setcookie (), только функции, такие как echo () и данные между блоками Код PHP .

http://php.net/manual/en/book.outcontrol.php

Дополнительные ресурсы:

Буферизация вывода с помощью PHP

9
ответ дан 23 November 2019 в 05:15
поделиться

Как следует из названия, здесь буфер памяти, используемый для управления отображением вывода скрипта.

Вот один очень хороший учебник по теме

4
ответ дан 23 November 2019 в 05:15
поделиться

Буферизация вывода используется 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 );
    }
?>
68
ответ дан 23 November 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: