[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не работает буферизация
quickxyan
пишу потихоньку сайт с нуля и решил сделать структуру MVC.
зашел на ирбис посомтрел про буферизацию и попробовал сделать у себя.


<?php

ob_start();

$salutation = "sdssdsdkl";
/**
* Подключаем шаблон приветствия
* Includes a salutation template
*/

$content = ob_get_contents();
ob_end_clean();
/**
* Подключаем шаблон
* Includes a template
*/

include './index.php';


шаблон грузится, но данные не передаются?? в чем может быть проблема?



Спустя 31 минута, 39 секунд (17.05.2011 - 00:30) Krevedko написал(а):
а что ты хотел ?
ты пишешь echo $content ? а что должно выводится ? ничего. У тебя же только присвоение переменной.
обычно буферизация используется с инклюдами. сунул инклюд в буфер, а потом пишешь в нужном месте echo $content; и вуаля...постоянно пользуюсь этим, чтобы вывести хтмл код между хидером и футером, так как ненавижу резать сайт на хидер, контент и футер. У меня обычно хидер-футер в одном и между ними контент. И нету равной верстки

Спустя 59 минут, 40 секунд (17.05.2011 - 01:30) inpost написал(а):
quickxyan
Буфер твой работает. Ты ничего не вывел, поэтому переменная пустая.

Спустя 7 часов, 29 секунд (17.05.2011 - 08:31) quickxyan написал(а):
в шаблоне. завтыкал выложить. когда-то делал именно копипастя у ирбиса - все получалось в буфер писалось, а сейчас что-то не пойму.


<div align="left" style="margin-left:20px; margin-right:20px; margin-top:50px;">
<?php
echo $content ?>
</div>


Спустя 1 минута, 26 секунд (17.05.2011 - 08:32) Krevedko написал(а):
и что ты хочешь чтобы выводило ? если у тебя в буфере только присвоение переменной. я тебе уже выше написал, инпост тебе написал...

Спустя 16 минут, 20 секунд (17.05.2011 - 08:48) quickxyan написал(а):
Krevedko
а разве, то что присваивается переменным не пишется в буфер для вывода или надо сделать так?


<?php

ob_start();

$salutation = "sdssdsdkl";

echo $salution;

$content = ob_get_contents();
ob_end_clean();
/**
* Подключаем шаблон
* Includes a template
*/

include './index.php';

Спустя 2 минуты, 40 секунд (17.05.2011 - 08:51) linker написал(а):
quickxyan
"Буфер вывода", а теперь логически подумай, что нужно сделать чтобы что-то туда попало? Конечно же нужно что-то напечатать на экране (echo, print, printf и т.д.)

Спустя 5 минут, 6 секунд (17.05.2011 - 08:56) quickxyan написал(а):
тогда промашка ясна. спасибо!

Спустя 56 минут, 2 секунды (17.05.2011 - 09:52) quickxyan написал(а):
все работает, но вот тут возникает вопрос.

если пишу


$text="text";
echo $text;


выводится в шаблон и еще выводится перед макетом.

Спустя 14 минут, 48 секунд (17.05.2011 - 10:07) linker написал(а):
А ты думал как, что первое вывелось, то и отобразилось. Ты же не недоумеваешь когда пишешь
echo "Hello "; 
echo "world";
, то у тебя выводится Hello world, а не world Hello. Нет никакой разницы.

Спустя 9 минут, 56 секунд (17.05.2011 - 10:17) quickxyan написал(а):
бррр ничего не понимаю)

я хотел в один шаблон вставлять разные страницы.

я наверное жестко туплю, но никак не пойму в чем суть. если без echo, то на страницу ничего не выводится, если с ним, то выводится 2 раза. один там где надо, а другой переед шаблоном.

что я тут делаю не так?

Спустя 7 минут, 36 секунд (17.05.2011 - 10:24) linker написал(а):
ob_start();     
echo 'world';
$c = ob_get_contents();
ob_end_clean();
echo 'Hello ' . $c;

Спустя 1 минута, 17 секунд (17.05.2011 - 10:26) Krevedko написал(а):
$text="text";
echo $text;
пиши в буфер. тогда echo $content в середине шаблона выведет текст в середине

Спустя 30 минут, 21 секунда (17.05.2011 - 10:56) quickxyan написал(а):
все по примеру linker заработало, но все равно не пойму почему у меня не работало, ведь все то же было.

ну и ладно главное, что заработало.

Огромное спасибо Krevedko, linker и inpost

Спустя 8 минут, 42 секунды (17.05.2011 - 11:05) Krevedko написал(а):
ну вообщем ты понял. эхи внутри буфера не выводятся, зато потом ты можешь все это дело записать в переменную и выводить там, где тебе надо. а ведь их может быть много и тут начинается самое интересное. можно и меню боковое так выводить и контент например

Спустя 27 минут, 53 секунды (17.05.2011 - 11:33) quickxyan написал(а):
Krevedko
у меня нету бокового меню) я вот еще немного попишу и выставлю в раздел ОЦЕНИТЕ. чтобы мне по рукам надавали и расказали, что неправильно smile.gif


_____________
печатаю со скоростью 320 минут в знак...

плюсуем карму не стесняемся
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.