Отправить заявку

Буферизация данных в PHP

Буферизация - метод хранения, ввода, вывода информации на вычислительной машине. Процесс буферизации разделяется на 2 этапа: 1. сборщик информации(ввод данных) 2. вывод или передача хранимых данных Буферизация полезна тем, что система не ждет результата выполнения кода(echo или print) и сразу двигается дальше, а так же можно прописывать старт заголовков в любом месте(setcookie, header).

<?
ob_start('ob_gzhandler',4); // включение сжатия 0 - 9

ob_start(); // старт буферизации

// не меняйте местами сжатие и старт буферизации, иначе страница просто не откроется во многих браузерах!!

if(strpos($_SERVER['HTTP_USER_AGENT'],'opera')!==false){

$title='Титлы для оперы';

}else{

$title='Титлы для других браузеров';

}



echo 'Приветствую на моем сайте!';

setcookie('test','value');



include_once 'head.php';


head.php:


$buff=ob_get_contents(); // можно сделать дополнительные операции с данными из буфера

ob_clean(); // очишаем буфер

echo '<html>

<head>

<title>'.$title.'</title>

<body>';



echo $buff; // вывод содержимого буфера



echo '</body>

</html>';
?>

Отсюда мы видим что при буферизации можно изменять данные(в данном случае титлы), затем установив их в нужное место. И не надо ограничиваться титлами,так же можно записывать различные ошибки или уведомления в $error, $warn или $true. Стоит учесть 1 "но": функцию output_add_rewrite_var() нужно активировывать после ob_clean().

output_add_rewrite_var() служит для автоматического пристыковывания переменной и ее значение к ссылкам и формам(на header это не действует!)

Другие публикации