(PHP 4, PHP 5, PHP 7, PHP 8)
ob_start — Activa el temporizador de salida
$callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): boolEsta función activa el almacenamiento en búfer de la salida. Cuando el almacenamiento en búfer está activo, ninguna salida es enviada desde el script; en su lugar, la salida se almacena en un búfer interno. Consulte ¿Qué salida está bufferizada? para saber exactamente qué salidas están afectadas.
Los búferes de salida son apilables, es decir ob_start() puede ser llamada mientras otro búfer está activo. Si varios búferes de salida están activos, la salida es filtrada secuencialmente a través de cada uno de ellos en el orden de anidación. Consulte Anidamiento de búferes de salida para más detalles.
Consulte Búferes de salida a nivel de usuario para una descripción detallada de los búferes de salida.
callback
Un callback callable opcional puede ser
especificado. También puede ser omitido pasando null.
callback es invocado cuando el búfer de salida es
vaciado (enviado), limpiado, o cuando el búfer de salida es vaciado
al final del script.
La firma del callback es la siguiente:
bufferphasePHP_OUTPUT_HANDLER_*
.
Consulte Flags pasados a los gestores de salida
para más detalles.
Si callback devuelve false,
el contenido del búfer es enviado.
Consulte Valores de retorno de los gestores de salida
para más detalles.
Llamar a alguna de las siguientes funciones desde un manejador de salida provocará un error fatal: ob_clean(), ob_end_clean(), ob_end_flush(), ob_flush(), ob_get_clean(), ob_get_flush(), ob_start().
Consulte Gestores de salida
y Trabajar con los gestores de salida
para más detalles sobre los callbacks (manejadores de salida).
chunk_size
Si el parámetro opcional chunk_size es pasado,
la función de devolución de llamada es llamada cada nueva línea después
de chunk_size bytes de salida.
El valor por omisión 0 significa
que toda la salida es almacenada en búfer hasta que el búfer sea desactivado.
Consulte Tamaño del búfer para más detalles.
flags
El parámetro flags es una máscara que controla
las operaciones que pueden ser realizadas sobre el búfer de salida.
Por omisión, permite que el búfer de salida sea limpiado, enviado
y eliminado, lo cual puede ser definido explícitamente con los
indicadores de control del búfer
.
Consulte Operaciones permitidas en los búferes
para más detalles.
Cada flag controla el acceso a un conjunto de funciones, tal como se describe a continuación:
| Constante | Funciones |
|---|---|
PHP_OUTPUT_HANDLER_CLEANABLE |
ob_clean(), |
PHP_OUTPUT_HANDLER_FLUSHABLE |
ob_flush(), |
PHP_OUTPUT_HANDLER_REMOVABLE |
ob_end_clean(), ob_end_flush() y ob_get_clean(). ob_get_flush(). |
Nota: Antes de PHP 8.4.0, el parámetro flags podía definir los flags de estado del manejador de salida también.
Ejemplo #1 Ejemplo de manejo de salida con función de devolución de llamada
<?php
function handler($buffer)
{
// reemplaza todas las patatas por zanahorias
return (str_replace("pommes de terre", "carottes", $buffer));
}
ob_start("handler");
?>
<html>
<body>
<p>Es como comparar zanahorias y patatas.</p>
</body>
</html>
<?php
ob_end_flush();
?>El ejemplo anterior mostrará :
<html> <body> <p>Es como comparar zanahorias y zanahorias.</p> </body> </html>
Ejemplo #2 Crea un búfer de salida no eliminable
<?php
ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);
?>