What's the difference between ob_clean()
and ob_flush()
?
Also what's the difference between ob_end_clean()
and ob_end_flush()
? I know ob_get_clean()
and ob_get_flush()
both get the contents and end output buffering.
What's the difference between ob_clean()
and ob_flush()
?
Also what's the difference between ob_end_clean()
and ob_end_flush()
? I know ob_get_clean()
and ob_get_flush()
both get the contents and end output buffering.
the *_clean
variants just empty the buffer, whereas *_flush
functions print what is in the buffer (send the contents to the output buffer).
ob_start();
print "foo"; // This never prints because ob_end_clean just empties
ob_end_clean(); // the buffer and never prints or returns anything.
ob_start();
print "bar"; // This IS printed, but just not right here.
ob_end_flush(); // It's printed here, because ob_end_flush "prints" what's in
// the buffer, rather than returning it
// (unlike the ob_get_* functions)
The key difference is
*_clean()
discards changes and *_flush()
outputs to the browser.
Usage of ob_end_clean()
it is mostly used when you want to have a chunk of html and do not want to output to the browser right away but may be used in future.
Eg.
ob_start()
echo "<some html chunk>";
$htmlIntermediateData = ob_get_contents();
ob_end_clean();
{{some more business logic}}
ob_start();
echo "<some html chunk>";
$someMoreCode = ob_get_content();
ob_end_clean();
renderTogether($htmlIntermediateCode, $someMoreCode);
where as ob_end_flush()
will render twice, once for each.
© 2022 - 2024 — McMap. All rights reserved.
ob_clean()
andob_flush()
andob_end_clean()
andob_end_flush()
or explain which specific aspect needs elaboration. – Parietalprint
orecho
), therefore you will see no difference in the function signatures. – Papiamento