Буферизация - метод хранения, ввода, вывода информации на вычислительной машине. Процесс буферизации разделяется на 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 это не действует!)