Буферизация ob_start, ob_flush, ob_get_contents, ob_clean

Сегодня поговорим о буфере в PHP...

Буферизация - это когда мы собираем сперва все данные в буфер, потом можем его обрабатывать и потом уже только в нужном месте выводим. В отличие, от обычного echo - оно выводит сразу.

 

Основные функции буфера

 

1.  для начала мы должны объявить место начала буферизации при помощи функции ob_start()

2. после первого пункта начался уже буфер и тут мы собираем разные данные.

3. После сбора данных, надо их присвоить в переменную при помощи функции ob_get_contents()

4. Далее идет процесс очистки и вывода:

а)  ob_clean() - эта функция очищает буфер и ничего не выводит!

б) ob_flush() - наоборот выводит, но ничего не очищает из буфера

в) ob_end_clean() - очищает буфер и отключает буферизацию

г) ob_end_flush () - выводит из буфера, завершает буферизацию и ничего из буфера не удаляет!

 

Пример:

<?php

// включаем буфер
ob_start();

// выводим информацию
echo "Я изучаю буфер в PHP";

// сохраняем всё что есть в буфере в переменную $content
$content = ob_get_contents();

// отключаем и очищаем буфер
ob_end_clean();

echo $content;

 Как видите внутри есть вывод при помощи echo (я изучают буфер в PHP) - именно вывод буферизируется. Если установить переменную и не вывести ее, то смысла не будет.

 

ob_start

В ob_start() первым параметром можно передать callback функцию, то есть которая сработает при вызове.

Например:

function ob_handler ($buffer, $phase) {
return "Длина строки '$buffer' is ". strlen($buffer);
}

ob_start('ob_handler');
echo "I learn buffer in PHP";
ob_end_flush();

 

 Вывод такой : Длина строки 'I learn buffer in PHP' is 21

 

 

 

 

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP Буферизация ob_start, ob_flush, ob_get_contents, ob_clean