Napisany lis-07-2008
kontrolujemy wyjście
Czasami zdarza się sytuacja, w której chcemy ustawić nagłówki HTTP, gdy wysłaliśmy już na wyjście jakieś dane. Można ten problem łatwo rozwiązać stosując funkcje: ob_start() i ob_end_flush() albo poprzez odpowiednią zmianę dyrektywy output_buffering w pliku php.ini. Dziś jednak zastanowimy się jak kontrolować “wyjście funkcji”. Co mam na myśli? Popatrzmy poniżej:
function print_something ($thing) {
echo $thing;
}
print_something('hello world');
Tutaj wynik działania od razu trafia nam na wyjście. Czasami jednak przydaje się dodatkowa “obróbka” tego co dostajemy po wywołaniu funkcji. W jaki więc sposób tego dokonać? Zobaczmy rozwiązanie:
function print_something ($thing) {
echo $thing;
}
ob_start();
print_something('hello world');
//wynik dzialania do zmiennej
$output = ob_get_contents();
ob_get_clean();
//obrobiony wynik wywolania funkcji
echo strlen($output);
Zainteresowanych pogłębianiem wiedzy na ten temat muszę odesłać do Google lub manual’a. Być może w przyszłości poświęcę tej tematyce większą uwagę

Cześć! Jestem w trakcie pisania CMS’a i ten atykuł bardzo mnie zainteresował.
W każdym swoim projekcie zaraz na początku głównego pliku (index.php) daję ’session_start()’, co wydaje mi się nieco nieoptymalnym rozwiązaniem, kiedy sesje nie są potrzebne (user nie jest zalogowany, nie beda przechowywane w sesjach żadne dane z wirtualnego koszyka internetowego itp).
Wydaje mi się, że własnie z ob_start, ob_clean mogę coś z tym zrobić, ale blog a manual to nie to samo

Z niecierpliwością czekam na Twoje reflekcje dotyczące tego tematu