Does echo equal fputs( STDOUT ), or does echo write to a different stream? I've used PHP for a while now, but I don't know very well what's actually happening on a lower level.
According to PHP's manual page on wrappers, the answer is No.
php://output
php://output is a write-only stream that allows you to write to the output buffer mechanism in the same way as print() and echo().
print and echo write to php://output stream, whereas fputs(STDOUT) writes to php://stdout.
I did a little test:
<?php $output = fopen('php://output', 'w'); ob_start(); echo "regular echo\n"; fwrite(STDOUT, "writing to stdout directly\n"); fwrite($output, "writing to php://output directly\n"); $ob_contents = ob_get_clean(); print "ob_contents: $ob_contents\n"; This script outputs (tested on PHP 5.2.13, windows):
writing to stdout directly ob_contents: regular echo writing to php://output directly i.e. writing to STDOUT directly bypasses ob handlers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With