views:

189

answers:

2

How to grab the string that a function echoes to a variable?

I've go a function similar to this:

    function echoer() {
        echo 'foo';
    }

I cannot change it's source. What I would like to do is to store 'foo' in a variable instead of letting it go to the standard output. How is it done in PHP?

+6  A: 

Use the output control functions.

Milen A. Radev
+11  A: 

ob_start() will start an output buffer which will suppress all content. Then, after you have done all the output, call ob_get_contents() and assign it to a variable. Finally call ob_end_clean() to start echoing normally again.

ob_start()

echo "This content won't be echoed immediatley";

$contents = ob_get_contents();

ob_end_clean();

echo $contents;

as Milen mentioned, check out Output Control functions.

This method is very useful, especially for working with Wordpress, which is set to output most things, like comments, and doesn't provide a return function.

Chacha102
BTW. 100th Answer! So Happy!
Chacha102