PHP.SU - Функция ob_start() - включает буферизацию вывода.

  Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 
Функции PHP » Функции управления выводом

ob_start

Версия: (PHP 4, PHP 5)

ob_start - включает буферизацию вывода.

Синтаксис:

bool ob_start (callable $output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]])
string (string $buffer [, int $phase ])

Параметры:

output_callback -
Можно задать необязательный параметр output_callback. Эта функция принимает строку в виде аргумента и должна также вернуть строку. Она вызывается при сбросе (отправке) или очистке (с помощью ob_flush(), ob_clean() или подобных функций) или если буфер вывода сбрасывается в браузер по окончанию запроса. При вызове функции output_callback, она получает содержимое буфера и должна вернуть обновленное содержимое для буфера вывода, который будет отправлен браузеру. Если output_callback не является допустимой функцией, то документируемая функция вернет FALSE. Описание функции для этого параметра: string handler ( string $buffer [, int $phase ] )

buffer - Содержимое буфера вывода.

phase - Битовая маска констант PHP_OUTPUT_HANDLER_*.

Если output_callback вернет FALSE, то оригинальная информация отправится в браузер без изменений.

Параметр output_callback может быть игнорирован передачей значения NULL.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() и ob_start() не могут вызываться из callback-функций, так как их поведение непредсказуемо. Если вы хотите удалить содержимое буфера, то верните "" (пустую строку) из callback-функции. Вы так же не можете вызывать функции print_r($expression, true) или highlight_file($filename, true) из callback-функций буферизации вывода.

Замечание:

В PHP 4.0.4 функция ob_gzhandler() была введена для облегчения отправки gz-кодированных данных web-браузерам, поддерживающим сжатые web-страницы. ob_gzhandler() определяет тип кодировки содержимого, принимаемый браузером, и возвращает вывод соответствующим образом.



chunk_size -
Если передан не обязательный параметр chunk_size, то буфер буден сброшен после любого вывода превышающего или равного по размеру chunk_size. Значение по умолчанию 0 означает, что функция вывода будет вызвана, когда буфер будет закрыт.
До PHP 5.4.0, значение 1 было специальным значением, которое устанавливало параметр chunk_size в 4096.

flags -
Параметр flags является битовой маской, которая управляет операциями, которые можно совершать над буфером вывода. По умолчанию она позволяет буферу вывода быть очищенным, сброшенным и удаленным, что равносильно значению PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE, или PHP_OUTPUT_HANDLER_STDFLAGS как сокращение этой комбинации.
Each flag controls access to a set of functions, as described below:
Константа Функции
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(), ob_end_clean(), и ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush(), и ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), и ob_get_flush().

Внимание

Некоторые web-сервера (например Apache) изменяют рабочую директорию скрипта, когда вызывается callback-функция. Вы можете вернуть ее назад, используя chdir(dirname($_SERVER['SCRIPT_FILENAME'])) в callback-функции.


Список изменений:

Версия Описание
7.0.0 В случае, если ob_start() используется внутри callback-функции буфера вывода, эта функция больше не будет приводить к ошибке E_ERROR, а вместо этого будет вызывать E_RECOVERABLE_ERROR, позволяя сторонним обработчикам ошибок поймать ее.
5.4.0 Третий параметр ob_start() изменен с булева (boolean) параметра erase (который при установке в FALSE предотвращал удаление буфера до тех пор, пока не завершалась работа скрипта) на целочисленный (integer) параметр flags. К сожалению, это означает появление несовместимости API для кода, который использовал третий параметр до версии PHP 5.4.0. Смотрите пример с флагами, чтобы понять как работать с кодом, чтобы он поддерживал совместимость с обеими версиями.
5.4.0 Параметр chunk_size, установленный в 1, теперь приводит к выводу по 1 байту в выходной буфер.
4.3.2 Функция вернет FALSE в случае, если output_callback не сможет быть выполнена.

Описание

Эта функция включает буферизацию вывода. Если буферизация вывода активна, вывод скрипта не высылается (кроме заголовков), а сохраняется во внутреннем буфере.

Содержимое этого внутреннего буфера может быть скопировано в строковую переменную, используя ob_get_contents(). Для вывода содержимого внутреннего буфера следует использовать ob_end_flush(). В качестве альтернативы можно использовать ob_end_clean() для уничтожения содержимого буфера. Внимание Некоторые web-сервера (например Apache) изменяют рабочую директорию скрипта, когда вызывается callback-функция. Вы можете вернуть ее назад, используя chdir(dirname($_SERVER['SCRIPT_FILENAME'])) в callback-функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры:

Пример 1 Пример callback-функции, определенной пользователем

PHP: скопировать код в буфер обмена
  1.  
  2. function callback($buffer)
  3. {
  4.   // заменить все яблоки апельсинами
  5.   return (str_replace("яблоки", "апельсины", $buffer));
  6. }
  7.  
  8. ob_start("callback");
  9.  
  10. <html>
  11. <body>
  12. <p>Это все равно что сравнить яблоки и апельсины.</p>
  13. </body>
  14. </html>
  15.  
  16.  

Результат выполнения данного примера:
  1.  
  2. <html>
  3. <body>
  4. <p>Это все равно что сравнить апельсины и апельсины.</p>
  5. </body>
  6. </html>
  7.  

Пример 2 Создание нестираемого буфера вывода с совместимостью с версиями PHP 5.3 и 5.4

PHP: скопировать код в буфер обмена
  1.  
  2. if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
  3.   ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^
  4.     PHP_OUTPUT_HANDLER_REMOVABLE);
  5. } else {
  6.   ob_start(null, 0, false);
  7. }
  8.  

Смотрите также:

ob_get_contents() - Возвращает содержимое буфера вывода
ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода
ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
ob_implicit_flush() - Функция включает/выключает неявный сброс
ob_gzhandler() - callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
ob_iconv_handler()
mb_output_handler()
ob_tidyhandler()


 Функции по алфавиту 
   Содержание   
 Функции по категориям 

Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS