In PHP programming, we often encounter some functions that directly generate output, such as passthru(), readfile(), var_dump(), etc. But sometimes we want to import the output of these functions into a file, or first After processing and then outputting, or processing the output of these functions as strings.
At this time we will use the Output Buffer (output buffer) function.
There are several main functions that handle output buffering:
ob_start() starts output buffering. At this time, PHP stops outputting. After that, the output is transferred to an internal buffer.
ob_get_contents() This function returns the contents of the internal buffer. This is equivalent to turning these outputs into strings.
ob_get_length() returns the length of the internal buffer.
ob_end_flush() ends the output buffer and outputs the contents of the buffer. The output after this is normal output.
ob_end_clean() ends the output buffer and discards the contents of the buffer.
For example, the var_dump() function outputs the structure and content of a variable, which is very useful during debugging.
But if the content of the variable contains special HTML characters such as <, >, it will be output to It cannot be seen in the web page. What should I do?
This problem can be easily solved by using the output buffer function.
ob_start();
var_dump($var);
$out = ob_get_contents();
ob_end_clean();
The output of var_dump() is already stored in $out. You can output it now:
echo
. htmlspecialchars($out) .;
Or wait until the future, or send this string to the template (Template) and then output it.