note 90235 modified in book.outcontrol by danbrown
| From: | danbrown@php.net | Date: | Sat, 11 Apr 2009 19:06:18 +0000 |
| Subject: | note 90235 modified in book.outcontrol by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-153092@lists.php.net to get a copy of this message | ||
The manual is a little shy on explaining that output buffers are nested, and that "turns off
output buffering" means turning off the highest nested buffer. See ob_get_level (for a useful
function, but still no explanation)
<?php
ob_start();
echo "1:blah\n";
ob_start();
echo "2:blah";
// ob_get_clean() returns the contents of the last buffer opened. The first "blah" and
the output of var_dump are flushed from the top buffer on exit
var_dump(ob_get_clean());
exit;
?>
puts:
1:blah
string(6) "2:blah"
Prior to realising this, I had thought PHP's ob functionality left more to be desired. I
*really* wish I knew earlier.
--was--
The manual is a little shy on explaining that output buffers are nested, and that "turns off
output buffering" means turning off the highest nested buffer. See ob_get_level (for a useful
function, but still no explanation)
<?
ob_start();
echo "1:blah\n";
ob_start();
echo "2:blah";
// ob_get_clean() returns the contents of the last buffer opened. The first "blah" and
the output of var_dump are flushed from the top buffer on exit
var_dump(ob_get_clean());
exit;
?>
puts:
1:blah
string(6) "2:blah"
Prior to realising this, I had thought PHP's ob functionality left more to be desired. I
*really* wish I knew earlier.
http://php.net/manual/en/book.outcontrol.php