(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:
buffer
phase
PHP_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 callback
s (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 resultado del ejemplo sería:
<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);
?>