Чтобы поместить буфер в переменную можно воспользоваться следующим кодом:
здесь html вывод
$buffer = ob_get_contents();
ob_end_clean();
Обработка буфера перед отправкой в браузер:
function callback($buffer) {
//setlocale(LC_ALL, "ru_RU.UTF-8");
//функция заменяет тег h1 на p
$pattern = '/(.*)(\s)*(.*)(.*)<\/h1>/im';
$replacement = "Текст:
";
$buffer = preg_replace($pattern, $replacement, $buffer,1);
// замена метатегов
$array1 = array('/\<\s*title\s*\>.*\<\s*\/title\s*\>/isU', '/\<\s*meta\s+name\s*=\s*"description.*\/\>/isU', '/\<\s*meta\s+name\s*=\s*"keywords.*\/\>/isU');
$array2 = array('Тайтл ', '', '');
$buffer = preg_replace( $array1, $array2, $buffer);
return ($buffer);
}
ob_start("callback");
// code //
ob_end_flush();
Выводить строки с помощью echo нужно сразу при их выводе, а не после полной загрузки страницы, как это делается по-умолчанию.:
ob_implicit_flush()
Теги -
Php