Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent echo in PHP and catch what it is inside?

Tags:

string

php

echo

I have a function ( DoDb::printJsonDG($sql, $db, 1000, 2) ) which echos json. I have to catch it and then use str_replace() before it is send to the user. However I cannot stop it from doing echo. I don't want to change printJsonDG because it is being used in several other locations.

like image 813
ilhan Avatar asked Aug 17 '11 09:08

ilhan


People also ask

Where does PHP echo output go?

Echo sends output to the output buffer, If it's embedded in HTML (which is also being sent to the output buffer) then it appears that it writes that to the "source".

Is echo the only way to output text in PHP?

In PHP, the only way to output text is with echo.

Does PHP have echo?

With PHP, there are two basic ways to get output: echo and print .

For what echo is used in PHP?

The echo is used to display the output of parameters that are passed to it. It displays the outputs of one or more strings separated by commas. The print accepts one argument at a time & cannot be used as a variable function in PHP.


2 Answers

You can use the ob_start() and ob_get_contents() functions in PHP.

<?php

ob_start();

echo "Hello ";

$out1 = ob_get_contents();

echo "World";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

Will output :

string(6) "Hello "
string(11) "Hello World"
like image 162
olivier Avatar answered Sep 20 '22 20:09

olivier


You can do it by using output buffering functions.

ob_start();

/* do your echoing and what not */ 

$str = ob_get_contents();

/* perform what you need on $str with str_replace */ 

ob_end_clean();

/* echo it out after doing what you had to */

echo $str;
like image 41
N.B. Avatar answered Sep 20 '22 20:09

N.B.