ob_start ob_get_contents ob_end_flush ob_end_clean ob_clean limpiar ejemplo php output-buffering

php - ob_get_contents - Diferencia entre ob_get_clean y ob_get_flush



ob_start php ejemplo (4)

Ambas funciones limpian el búfer de salida, desactivan el búfer de salida y devuelven el valor del búfer anterior.

Sin embargo, ob_get_flush envía primero el búfer actual al cliente, mientras que ob_get_clean simplemente lo descarta.

Ambos parecen hacer lo mismo: devolverle el contenido del buffer de salida y borrarlo luego.

¿Cuál debería usar?


Para tratar de responder a su pregunta directamente:

Si desea comenzar de nuevo el almacenamiento en búfer después de enjuagar el búfer, entonces use ob_get_clean ya que el búfer de salida aún estará listo sin tener que volver a encenderlo. (recuerde que esto solo se puede usar si no hay texto, incluso el espacio en blanco se hace eco en el navegador). Por lo tanto, para usos más generales, todos mis libros de programación se inclinan por ob_get_flush (como un solo buffer por la mayoría de los scripts)


ob_get_clean() elimina el búfer (sin imprimirlo) y devuelve su contenido.

ob_get_flush() imprime el búfer, lo elimina y devuelve su contenido.


ob_get_clean simplemente devolverá el contenido del búfer y lo asignará a la variable que desee, pero no generará ningún resultado.

ob_get_flush por otro lado, hace todo lo que ob_get_clean hace, pero también emite el contenido.