Почему неработает ob_start, ob_get_contents

Кощей

if(!$needle) die("ooh");
Почему неработает ob_start, ob_get_contents

Вот хочу сделать кеширование в своей нюке, делаю так
ob_start();
include("header.php");
$html = ob_get_contents();
ob_end_clean();

Идея моя такова:
По всей странице вместо echo делаю $html .=
и записываю в текстовый файлик, в последствии гружу страницу прямо из него
c внутриним контентом все норамльно он присваеваеться к $html записываеться потом нормально считываеться а вот файлы верхушки и низа которые должны инклудитьсяв переменную незаписываються а инклудяться как обычно.
 

bestic

Новичок
Ты очищаешь буфер вызовом
ob_end_clean();

Для того чтобы вывести буфер используй ob_end_flush();
 

Кощей

if(!$needle) die("ooh");
мне нужно записать в переменную то что заинклудиться в файле

первый раз уже нормально инклудит кстати, а второй раз когда я пытаюсь сделать тоже самое ничего не выходит

вот такая схема:

ob_start();
include("header.php");
$html = ob_get_contents();
ob_clean();

$html .= ' HTML КОНТЕНТ';

ob_start();
include("footer.php");
$html .= ob_get_contents();
ob_end_clean();

echo $html;

запись $html в файл, но записывает все до footer.php
 

iamFake

Mind Of Liberty
ob_start() включает буферизацию вывода (output buffering), т.е. в буфер попадает все что выводиться всякими echo print и прочие... при инклюде файла, если в нем нет конструкций вывода то и в буфер ничего не попадет...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
2bestic
данные уже закешированны и сохранены в переменной.
 

Кощей

if(!$needle) die("ooh");
Вот даже попроще делаю но так вообще ничего не пишется в переменную а всё выводиться как и нету ob_start< ob_end_clear

ob_start();
include("header.php");
$html .= ob_get_contents();


$html .= ' HTML КОНТЕНТ';

include("footer.php");
$html .= ob_get_contents();
ob_end_clean();

echo $html;


вот если закоментирваоть строку "echo $html;" то всё выводиться всеравно, тоесть она пуста поемуто
 

bestic

Новичок
А почему бы, просто один раз не вызвать ob_start() в начале работы скрипта и ob_end_clean() в конце работы:

-------------------------------------------
ob_start();

include("header.php");

echo ' HTML КОНТЕНТ';

include("footer.php");

$html .= ob_get_contents();
ob_end_clean();

echo $html;
-------------------------------------------

И еще проверь параметр output_buffering в php.ini
 

Кощей

if(!$needle) die("ooh");
Будем пробывать.

Кстате подскажите как добавить перед цирой нолик, типа если 1 то будет 01, 2 будет 02, а если 24 то и будет 24
 

iamFake

Mind Of Liberty
Автор оригинала: Кощей
Будем пробывать.

Кстате подскажите как добавить перед цирой нолик, типа если 1 то будет 01, 2 будет 02, а если 24 то и будет 24
время чтоли?

date("H");

G Часы в 24-часовом формате без ведущих нулей
H Часы в 24-часовом формате с ведущими нулями
 
Сверху