Documentación offline PHP master

ob_start

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

ob_start

Activa el temporizador de salida

Descripción#

ob_start([callable $callback], [int $chunk_size], [int $flags]): bool
```php

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 [???](#outcontrol.what-output-is-buffered) 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 [???](#outcontrol.nesting-output-buffers) para más detalles.

Consulte [???](#outcontrol.user-level-output-buffers) 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:

```php
handler(string $buffer, [int $phase]): string

buffer
Contenido del buffer de salida.

phase
Máscara de bits de las constantes PHP_OUTPUT_HANDLER_* . Consulte ??? para más detalles.

Si callback devuelve false, el contenido del búfer es enviado. Consulte ??? para más detalles.

[!WARNING] 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 ??? y ??? 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 ??? 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 ??? 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.

[!NOTE] 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#

Esta función retorna true en caso de éxito o false si ocurre un error.

Ejemplos#

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>

Crea un búfer de salida no eliminable

<?php

ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

?>

Véase también#

ob_get_contents, ob_end_clean, ob_end_flush, ob_implicit_flush, ob_gzhandler, ob_iconv_handler, mb_output_handler, ob_tidyhandler