ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_startActiva el temporizador de salida

Descripción

ob_start(?callable $callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

Esta 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.

Parámetros

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:

handler(string $buffer, int $phase = ?): string
buffer
Contenido del buffer de salida.
phase
Máscara de bits de las constantes 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.

Advertencia

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.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

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);

?>

Ver también

  • ob_get_contents() - Devuelve el contenido del búfer de salida
  • ob_end_clean() - Elimina (limpia) el contenido del búfer de salida activo y lo desactiva.
  • ob_end_flush() - Vacía (envía) el valor de retorno del manejador de salida activo y desactiva el búfer de salida activo
  • ob_implicit_flush() - Activa/desactiva el envío implícito
  • ob_gzhandler() - Función de recuperación para la compresión automática de pastillas
  • ob_iconv_handler() - Convierte la codificación de caracteres al manejador del buffer de salida
  • mb_output_handler() - Función de tratamiento de los despliegues
  • ob_tidyhandler() - Función callback de ob_start para reparar el buffer