Hi,
this is just to add a behavior that I haven't understud at first place.
ob_get_flush actually returns the content of the buffer as a text but also it sends the buffer back to the browser so that it's displayed on user screen.
Use ob_get_clean if you do not want the buffer to be send to the user
ob_get_flush
(PHP 4 >= 4.3.0, PHP 5)
ob_get_flush — Volcar el búfer de salida, devolverlo como una cadena de caracteres y deshabilitar el almacenamiento en el búfer de salida
Descripción
string ob_get_flush
( void
)
ob_get_flush() vuelca el búfer de salida, lo devuelve como una cadena de caracteres y deshabilita el almacenamiento en el búfer de salida.
Nota: Esta función es similar a ob_end_flush(), excepto que esta función devuelve el búfer como una cadena de caracteres.
Valores devueltos
Devuelve el búfer de salida, o FALSE si el almacenamiento en el búfer no está activo.
Ejemplos
Ejemplo #1 Ejemplo de ob_get_flush()
<?php
//usando output_buffering=On
print_r(ob_list_handlers());
//guardar el búfer en un fichero
$búfer = ob_get_flush();
file_put_contents('bufer.txt', $búfer);
print_r(ob_list_handlers());
?>
El resultado del ejemplo sería:
Array
(
[0] => default output handler
)
Array
(
)
Ver también
- ob_end_clean() - Limpiar (eliminar) el búfer de salida y deshabilitar el almacenamiento en el mismo
- ob_end_flush() - Volcar (enviar) el búfer de salida y deshabilitar el almacenamiento en el mismo
- ob_list_handlers() - Enumerar todos los gestores de salida en uso
info at pcdoctor dot fr ¶
4 years ago
taras dot dot dot di at gmail dot com ¶
4 years ago
I don't know how exactly this works, but if you call this function, PHP would behave as if headers have been sent (even though the output has gone to a string).
This means that you can't call this function, and then call setcookie for example.
This was verified by trial and error
zubin@byron ¶
7 years ago
Correction to previous post: ob_get_clean() is better, ie:
<?php
// start generating html
$html = '<html><head>'; // etc
// start output buffering
ob_start();
// call function which outputs immediately
print_menu();
// append this to $html and empty buffer
$html .= ob_get_clean();
?>
zubin@byron ¶
7 years ago
I found this function is useful for storing output instead of displaying it. For example, I wanted to use an old function which echoed the ouput but I wanted it in a variable, not outputted immediately. Here's how:
<?php
// start generating html
$html = '<html><head>'; // etc
// start output buffering
ob_start();
// call function which outputs immediately
print_menu();
// append this to $html
$html .= ob_get_flush();
// empty output buffer
ob_clean();
?>
