When writing a large chunk to STDOUT
in PHP you can do this:
echo <<<END_OF_STUFF
lots and lots of text
over multiple lines
etc.etc
END_OF_STUFF;
(i.e. heredoc)
I have the need to do a similar thing but to STDERR
. Is there another command like echo
but uses STDERR
instead?
Yes, using php:// stream wrapper: http://php.net/manual/en/wrappers.php.php
$stuff = <<<END_OF_STUFF
lots and lots of text
over multiple lines
etc.etc
END_OF_STUFF;
$fh = fopen('php://stderr','a'); //both (a)ppending, and (w)riting will work
fwrite($fh,$stuff);
fclose($fh);
For a simple solution - try this
file_put_contents('php://stderr', 'This text goes to STDERR',FILE_APPEND);
The FILE_APPEND
parameter will append data and not overwrite it.
You could also write directly to the error stream using the fopen
and fwrite
functions.
More info can be found at - http://php.net/manual/en/features.commandline.io-streams.php
In the CLI SAPI, it can be as simple as passing a Heredoc string as an argument to fwrite()
with the STDERR constant.
fwrite(STDERR, <<< EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD
);
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