Ti rispondo in maniera maccheronica perchè non sono un professionista della materia (quindi pronto ad essere smentito.
ob_start() è una funzione che immagazzina l'output generato dal file all'interno del buffer del php.
il buffer (non sò precisamente cosa è, ma in termini maccheronici) è una specie di memoria temporanea del php.
Una volta immagazzinato è possibile:
- operare su di esso e manipolarlo;
- rilasciarlo in un momento desiderato dell'esecuzione dello script;
- non sò cos'altro.
Il tutto utilizzando apposite funzioni e parametri.
ad esempio:
Codice PHP:
io sono bravo</p>
<?php
ob_start();
$output_prodotto = ob_get_contents();
$manipola_output = str_replace('bravo', 'cattivo', $output_prodotto);
echo $manipola_output;
?>
è un esempio squallido... (ob_start accetta funzioni di callback... etc etc)
---------------------
nell'esempio che ho postato:
Codice PHP:
ob_start();
header("HTTP/1.0 404 Not Found");
exit;
io l'ho utilizzata in un ambito non opportuno e che dovrebbe essere gestito diversamente:
essendo che inviavo un header, questo non può essere inviato se ho già inviato prodotto un output. Quindi io ho bloccato l'output con ob_start() e ho potuto inviare il mio bel header
Ma ti ripeto:
io l'ho utilizzato per gestire semplicisticamente una cosa che deve essere gestita diversamente!!!