ob_start
(PHP 4, PHP 5, PHP 7, PHP 8)
ob_start — Вмикає буферизацію виводу
Опис
ob_start(callable $callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool
Функція включає буферизацію виведення. Поки буферизація виводу активна, виведення зі скрипту не відправляється, натомість висновок зберігається у внутрішньому буфері. В розділі " Який висновок буферизується? » розказано, який саме висновок це впливає.
Буфери виведення поміщаються у стек, тому функцію ob_start() можна викликати, поки активний інший буфер. Якщо активовано кілька буферів виведення, висновок фільтрується послідовно через кожен із них у порядку вкладеності. Докладніше про це розказано у розділі «Вкладені буфери виводу».
Детальний опис буферів виводу наведено в розділі Буфери виводу користувача
Список параметрів
callback
Можна вказати необов'язковий параметр callback
callable). Щоб обійти його, передають значення null
Параметрcallback
викликається, коли буфер виведення скидається (відправляється), очищається або коли буфер виведення скидається наприкінці скрипта.
Сигнатураcallback
-функції:
handler(string $buffer, int $phase = ?): string
buffer
Вміст буфера виводу.
phase
Битовая маска из семейства константPHP_OUTPUT_HANDLER_*
. Докладніше про прапори розказано у розділі «Прапори, що передаються обробникам виводу».
Якщо параметр callback
поверне **false
**повертається вміст буфера. Докладніше про це розказано у розділі «Значення оброблювача виводу, що повертаються».
Увага
Виклик будь-якої з наведених нижче функцій з обробника висновку видасть фатальну помилку: ob_clean() ob_end_clean() ob_end_flush() ob_flush() ob_get_clean() ob_get_flush() ob_start()
Подробнее оcallback
-функціях (обробників висновку) розказано в розділах « Обробники виводу » та «Робота з оброблювачами виводу».
chunk_size
Якщо передано необов'язковий параметр chunk_size
, буфер буде скинутий після кожного блоку коду, розмір буфера якого досяг або перевищив значення параметра chunk_size
Значение по умолчанию означає, що висновок буферизується до тих пір, поки буфер не буде вимкнений. Докладніше про це розказано у розділі «Розмір буфера».
flags
Параметрflags
- Це бітова маска, яка управляє операціями, що виконуються з буфером виведення. За замовчуванням дозволено очищення, скидання та видалення буферів виводу, що дозволено встановлювати явно через прапори керування буфером . Докладніше про це розказано у розділі « Операції, дозволені для буферів ».
Кожен прапор управляє доступом до набору функцій, як описано нижче:
Константа | Функции |
---|---|
PHP_OUTPUT_HANDLER_CLEANABLE | ob_clean() |
PHP_OUTPUT_HANDLER_FLUSHABLE | ob_end_flush() |
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean()ob_end_flush()ob_get_clean()ob_get_flush() |
Значення, що повертаються
Повертає true
у разі успішного виконання або **false
**в случае возникновения ошибки.
Приклади
Приклад #1 Приклад callback-функції, визначеної користувачем
Loading...
Результат виконання наведеного прикладу:
<html>
<body>
<p>Это всё равно что сравнить апельсины и апельсины.</p>
</body>
</html>
Приклад #2 Створення буфера виводу, що не стирається.
Loading...
Дивіться також
- ob_get_contents() - Повертає вміст буфера виводу
- ob_end_clean() - Очищає (стирає) вміст активного буфера виведення та відключає його
- ob_end_flush() - Скидає (відправляє) значення активного оброблювача виводу, що повертається, і відключає активний буфер виводу
- ob_implicit_flush() - Вмикає/вимикає неявне скидання
- ob_gzhandler() - Стискає буфер виведення в gzip, діючи як callback-функція - параметр функції ob_start
- ob_iconv_handler() - Перетворює символи з поточного кодування на кодування вихідного буфера
- mb_output_handler() - Перетворює кодування символів у буфері виведення, виступаючи в ролі callback-функції
- ob_tidyhandler() - Функція зворотного виклику ob_start для відновлення буфера