#49688 [Opn]: ob_start() does not capture output to STDOUT
| From: | jani@php.net | Date: | Sun, 27 Sep 2009 21:39:47 +0000 |
| Subject: | #49688 [Opn]: ob_start() does not capture output to STDOUT | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-2828@lists.php.net to get a copy of this message | ||
ID: 49688
Updated by: jani@php.net
Reported By: ch at lathspell dot de
Status: Open
-Bug Type: Output Control
+Bug Type: Documentation problem
Operating System: Linux
PHP Version: 5.3.0
New Comment:
Using php://stdout means you're by-passing output buffering
intentionally. Perhaps a note or two could be in order in the docs..
Previous Comments:
------------------------------------------------------------------------
[2009-09-27 18:54:52] ch at lathspell dot de
Description:
------------
Output buffering does capture the output of print() and echo() but
apparently not anything that goes to STDOUT (php://stdout) via
fwrite().
That should preferably be fixed or at least be documented.
Reproduce code:
---------------
$ cat t.php
<?php
error_reporting(E_ALL);
ob_start();
echo "does work\n";
$f = fopen('php://stdout', 'w');
fwrite($f, "does not work\n");
fclose($f);
$v = ob_get_contents();
ob_end_clean();
print("CAPTURED: $v\n");
Expected result:
----------------
$ php t.php
CAPTURED: does not work
does work
Actual result:
--------------
$ php t.php
does not work
CAPTURED: does work
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49688&edit=1