Данная группа функций позволяет управлять тем, как РИР при выполнении сценария выводит информацию. Это может быть полезно в различных ситуациях, в особенности при посылке браузеру HTML-заголовков (headers) после того, как сценарий начал выводить HTML-текст. (В обычном случае невозможно послать заголовок после того, как был начат вывод текста.) Эти функции не воздействуют на заголовки, посланные функциями header() или setcookie(), а только па функции, подобные echo() и HTML-тексту между блоками РНР-кода.
<?php ob_start():
echo "HelloXn"
\ I setcookie ("cookiename".
"cookiedata"):
end flush() : / >>
В примере выше вывод командой echo() будет сохранен в буфере вывода до вызова функции ob_end_flush(). В то же время вызов setcookie() успешно сохраняет cookie, не вызывая ошибки.
См. также: header() и setcoukie().
ob_start
Включение буферизации вывода
void ob_start ([string output_callback])
После вы-зова этой функции включается буферизация вывода и, пока она активна, никакие из выводящихся данных не будут посланы браузеру, а будут сохраняться во внутреннем буфере РНР.
Содержимое буфера может быть скопировано в строковую переменную функцией ob_get_contents(). Для вывода содержимого из буфера используется функция ob_end_f"lush(). Удалить содержимое буфера позволяет функция ob_end_clean().
В аргументе output_callback можно указать функцию, которая будет автоматически вызываться при выводе содержимого буфера. Обычно это используется для модификации содержимого буфера перед выводом (например, сжатия). Тогда при вызове функции ob_end_flush() в указанную функцию будет передаваться содержимое буфера, а то, что она возвратит, будет выведено (заметьте, сама функция не должна ничего выводить).
Буферизация может быть вложенной, и тогда она обрабатывается соответственно вложенности; и содержимое, выводимое из буфера нижнего уровня, будет включаться в буфер верхнего уровня. Не забывайте, что для вывода всего буферизированного содержимого необходимо вызвать функцию ob_end_flush() сколько же раз, сколько была вызвана ob_start().