ob_list_handlers
output_add_rewrite_var
Output Control Functions
PHP Manual

# ob_start

(PHP 4, PHP 5)

ob_start — Habilitar el uso de búferes de salida

### Descripción

bool ob_start ([ callback `$llamada_de_retorno_salida` [, int `$tamanyo_segmento` [, bool `$borrar` ]]] )

Esta función habilitará el uso de búferes de salida. Mientras los búferes de salida están activos no se envía salida desde el script (más que las cabeceras), en su lugar la salida es almacenada en un búfer interno.

Los contenidos de este búfer interno pueden ser copiados a una variable de cadena usando ob_get_contents(). Para producir la salida de lo que está almacenado en el búfer interno, use ob_end_flush(). Alternativamente, ob_end_clean() descartará silenciosamente los contenidos del búfer.

Warning

Algunos servidores web (p.ej. Apache) modifican el directorio de trabajo de un script cuando se ejecuta la llamada de retorno. Es posible modificarlo de vuelta p.ej. mediante chdir(dirname($_SERVER['SCRIPT_FILENAME'])) en la llamada de retorno.

Los búferes de salida pueden apilarse, es decir, es posible llamar ob_start() mientras que otro ob_start() está activo. Simplemente asegúrese de llamar ob_end_flush() el número apropiado de veces. Si múltiples llamadas de retorno están acivas, la salida es filtrada secuencialmente a través de cada una de ellas en orden de anidamiento.

### Lista de parámetros

`llamada_de_retorno_salida`

  Es posible especificar una función opcional `llamada_de_retorno_salida` . Esta función recibe una cadena como parámetro y debe devolver una cadena. La función será llamada cuando se llame ob_end_flush(), o cuando el búfer de salida sea volcado al navegador al final de la petición. Cuando se llama `output_callback` , éste recibirá los contenidos del búfer de salida como su parámetro y se espera que devuelva un nuevo búfer de salida como resultado, valor que será enviado al navegador. Si la `llamada_de_retorno_salida` no es una función que pueda llamarse, se devolverá `FALSE`.

  Si la llamada de retorno tiene dos parámetros, el segundo parámetro es llenado con un campo de bits consistente de `PHP_OUTPUT_HANDLER_START`, `PHP_OUTPUT_HANDLER_CONT` y `PHP_OUTPUT_HANDLER_END`.

  Si `llamada_de_retorno_salida` devuelve `FALSE`, la entrada original es enviada al navegador.

  El parámetro `llamada_de_retorno_salida` puede evitarse pasando el valor `NULL`.

  No deben llamarse ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() ni ob_start() desde una llamada de retorno. De hacerse, el comportamiento es indefinido. Si desea eliminar los contenidos de un búfer, devuelva "" (una cadena nula) desde la llamada de retorno. No es posible siquiera llamar funciones que usen el mecanismo de búferes de salida como print_r($expresion, true) o highlight_file($nombre_archivo, true) desde una llamada de retorno.

  > Note: En PHP 4.0.4 se introdujo ob_gzhandler() para facilitar el envío de datos codificados con el algoritmo gz a navegadores web con soporte para páginas web comprimidas. ob_gzhandler() determina el tipo de contenido que aceptará el navegador y devolverá su salida acordemente.

`tamanyo_segmento`

  Si se pasa el parámetro opcional `tamanyo_segmento` , la llamada de retorno es ejecutada en cada primera nueva línea después de `tamanyo_segmento` bytes de salida. El valor predeterminado 0 quiere decir que la función es llamada únicamente al final, el otro valor especial 1 define `tamanyo_segmento` a 4096.

`borrar`

  Si el parámetro opcional `borrar` es definido como `FALSE`, el búfer no será eliminado hasta que el script finalice (a partir de PHP 4.3.0).

### Valores retornados

Devuelve `TRUE` si todo se llevó a cabo correctamente, `FALSE` en caso de fallo.

### Registro de cambios

Versión | Descripción
--- | ---
4.3.2 | Esta función cambió para devolver `FALSE` en caso de que `llamada_de_retorno_salida` no pudiera ejecutarse.

### Ejemplos

Example #1 Ejemplo de una llamada de retorno del usuario

`<?php
function llamada_retorno($bufer)
{
// reemplazar todas las manzanas con naranjas
return (str_replace("manzanas", "naranjas", $bufer));
}
ob_start("llamada_retorno");
?>
<html>
<body>
<p>Es como comparar manzanas con naranjas.</p>
</body>
</html>
<?php
ob_end_flush();
?>`

El resultado del ejemplo seria:

    <html>
    <body>
    <p>Es como comparar naranjas con naranjas.</p>
    </body>
    </html>

### Ver también

- ob_get_contents() - Devolver el contenido del búfer de salida
- ob_end_clean() - Limpiar (eliminar) y deshabilitar los búferes de salida
- ob_end_flush() - Volcar (enviar) el búfer de salida y deshabilitar el uso del búfer
- ob_implicit_flush() - Habilitar/deshabilitar el volcado implícito
- ob_gzhandler() - Llamada de retorno de ob_start para comprimir mediante gzip el búfer de salida
- ob_iconv_handler() - Convert character encoding as output buffer handler
- mb_output_handler() - Callback function converts character encoding in output buffer
- ob_tidyhandler() - ob_start callback function to repair the buffer

ob_list_handlers
output_add_rewrite_var
Output Control Functions
PHP Manual