The manual is a little shy on explaining that output buffers are nested, and that "turns off output buffering" means turning off the highest nested buffer. See ob_get_level (for a useful function, but still no explanation)
<?php
ob_start();
echo "1:blah\n";
ob_start();
echo "2:blah";
// ob_get_clean() returns the contents of the last buffer opened. The first "blah" and the output of var_dump are flushed from the top buffer on exit
var_dump(ob_get_clean());
exit;
?>
puts:
1:blah
string(6) "2:blah"
Prior to realising this, I had thought PHP's ob functionality left more to be desired. I *really* wish I knew earlier.
Control del búfer de salida
- Introducción
- Instalación/Configuración
- Constantes predefinidas
- Ejemplos
- Funciones del Control de la salida
- flush — Vaciar el búfer de salida
- ob_clean — Limpiar (eliminar) el búfer de salida
- 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_flush — Vaciar (enviar) el búfer de salida
- ob_get_clean — Obtener el contenido del búfer actual y eliminar el búfer de salida actual
- ob_get_contents — Devolver el contenido del búfer de salida
- 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
- ob_get_length — Devolver la longitud del búfer de salida
- ob_get_level — Devolver el nivel de anidamiento del mecanismo de almacenamiento en el búfer de salida
- ob_get_status — Obtener el estado de los búferes de salida
- ob_gzhandler — Función de llamada de retorno de ob_start para comprimir el búfer de salida con gzip
- ob_implicit_flush — Habilitar/deshabilitar el volcado implícito
- ob_list_handlers — Enumerar todos los gestores de salida en uso
- ob_start — Activa el almacenamiento en búfer de salida
- output_add_rewrite_var — Aladir valores al mecanismo de reescritura de URLs
- output_reset_rewrite_vars — Restablecer los valores del mecanismo de reescritura de URLs
clancy hood at gmail dot com ¶
4 years ago
