Ф-ции контроля вывода

samokspv

Новичок
ob_start, ob_get_contents(), ob_end_flush() и тд
Подскажите, в каких ситуациях лучше ими пользоваться?
 

С.

Продвинутый новичок
Не стоит бежать впереди паровоза. Если не возниколо еще ситуации, когда они нужны, то и нечего в них копаться. Сначала задача, потом решение, а не наоборот.
 

Фанат

oncle terrible
Команда форума
хороший вопрос, С. - ты неправ.
вопрос "где пользоваться" означает в то же время и "где не пользоваться"
А эти функции, как раз, чемпионы по применению в качестве костылей для кривой архитектуры.

samokspv
эти функции нужны, когда надо получить вывод в переменную.
чаще всего это обработка HTML шаблона, который не надо выводить сразу в браузер - например, шаблон HTML письма.
или когда нужна пост-обработка - вот у меня был экзотический случай, когда шаблон надо показать в браузере. То есть, обработать весь полученный HTML функцией htmlspecialchars.

но чаще всего эти функции в пхп используются не по назначению, когда программа ведёт себя, как пьяная - то начинает вывод, о вдруг решает выводить совсем другое, а то и вовсе решает ничего не выводить. в этих случаях надо чинить архитектуру.
 

samokspv

Новичок
эти функции нужны, когда надо получить вывод в переменную.
чаще всего это обработка HTML шаблона, который не надо выводить сразу в браузер - например, шаблон HTML письма.
Я понял то что это в основном большие куски данных,
а в чем будет отличие между тем чтоб получить так вывод в переменную и способом простого присваивания?

но чаще всего эти функции в пхп используются не по назначению, когда программа ведёт себя, как пьяная - то начинает вывод, о вдруг решает выводить совсем другое, а то и вовсе решает ничего не выводить. в этих случаях надо чинить архитектуру.
Вот и я видел что-то подобное, когда у человека в коде все выводы были реализованы через ob_*, дебаг был долгим.
 

Фанат

oncle terrible
Команда форума
а в чем будет отличие между тем чтоб получить так вывод в переменную и способом простого присваивания?
хороший вопрос.
отличие в том, что можно будет использовать шаблонизатор, и гораздо комфортнее работать с HTML (или XML or whatever).

в случае, если надо получить просто текст, без форматирования, можно и собирать в переменную.
 

samokspv

Новичок
отличие в том, что можно будет использовать шаблонизатор, и гораздо комфортнее работать с HTML (или XML or whatever).

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