Forum und email

Funciones de Control de Salida

Introducción

Las funciones de Control de Salida le permiten controlar cuándo es enviada la salida desde el script. Esto puede resultar útil en muchas situaciones diferentes, especialmente si necesita enviar cabeceras al navegador después de que su script ha comenzado a enviar datos. Las funciones de Control de Salida no afectan las cabeceras enviadas usando header() o setcookie(), sólo funciones como echo() y los datos entre bloques de código PHP.

Note: Cuando se actualice desde PHP 4.1.x (y 4.2.x) a 4.3.x, debido a un error en versiones anteriores, debe asegurarse de que implict_flush tenga el valor OFF en su archivo php.ini, de otra forma cualquier salida resultado de ob_start() no será escondida.

Requisitos

No se necesitan bibliotecas externas para construir esta extensión

Instalación

No se necesita ninguna instalación para usar estas funciones, son parte del núcleo de PHP.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Opciones de configuración del Control de Salida
Nombre Predeterminado Modificable Cambios
output_buffering "0" PHP_INI_PERDIR  
output_handler NULL PHP_INI_PERDIR Disponible desde PHP 4.0.4.
implicit_flush "0" PHP_INI_ALL PHP_INI_PERDIR en PHP <= 4.2.3.
For further details and definitions of the PHP_INI_* constants, see the Directivas de php.ini.

A continuación se presenta una corta explicación de las directivas de configuración.

output_buffering boolean/integer

Puede habilitar el uso de búferes de salida para todos los archivos, definiendo esta directiva como 'On'. Si desea limitar el tamaño del búfer a cierta cantidad - puede usar un número máximo de bytes, en lugar de 'On', como valor para esta directiva (p.ej., output_buffering=4096). A partir de PHP 4.3.5, esta directiva siempre tiene el valor Off en PHP-CLI.

output_handler string

Puede redireccionar toda la salida de sus scripts a una función. Por ejemplo, si establece el valor de output_handler a mb_output_handler(), la codificación de caracteres será convertida de forma transparente a la codificación especificada. Al definir cualquier gestor de salida, el control mediante búferes se activa automáticamente.

Note: Usted no puede usar mb_output_handler() con ob_iconv_handler() al tiempo, y no puede usar ob_gzhandler() y zlib.output_compression al tiempo.

Note: Solo funciones integradas del lenguaje pueden ser usadas con esta directiva. Para funciones definidas por el usuario, use ob_start().

implicit_flush boolean

FALSE por defecto. Cambiar este valor a TRUE le indica a PHP que debe decirle a la capa de salida que se vacíe automáticamente después de cada bloque de salida. Esto es equivalente a llamar la función de PHP flush() después de todas y cada una de las llamadas a print() o echo(), y cada bloque HTML.

Cuando use PHP bajo un entorno web, el habilitar esta opción tiene unas implicaciones serias en el rendimiento, y por lo general se recomienda su uso únicamente para propósitos de depuración. Este valor es igual a TRUE por defecto cuando se opera bajo la SAPI CLI.

Vea también ob_implicit_flush().

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

Example#1 Ejemplo de Control de Salida

<?php

ob_start
();
echo 
"Hola\n";

setcookie("nombre_cookie""datos_cookie");

ob_end_flush();

?>

En el anterior ejemplo, la salida de echo() sería almacenada en el búfer de salida hasta que ob_end_flush() sea llamada. Entre tanto, la llamada a setcookie() almacena satisfactoriamente una cookie sin causar un error. (Normalmente, usted no puede enviar cabeceras al navegador después de que se han enviado datos.)

Ver también

Vea también header() y setcookie().

Table of Contents

  • flush — Vaciar el búfer de salida
  • ob_clean — Limpiar (eliminar) el 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_flush — Vaciar (enviar) el búfer de salida
  • ob_get_clean — Obtener los contenidos del búfer actual y eliminar el búfer de salida actual
  • ob_get_contents — Devolver el contenido del búfer de salida
  • ob_get_flush — Volcar el búfer de salida, devolverlo como una cadena y deshabilitar el uso de búferes de salida
  • ob_get_length — Devolver la longitud del búfer de salida
  • ob_get_level — Devolver el nivel de anidamiento del mecanismo de búferes de salida
  • ob_get_status — Obtener el status de los búferes de salida
  • ob_gzhandler — Llamada de retorno de ob_start para comprimir mediante gzip el búfer de salida
  • ob_implicit_flush — Habilitar/deshabilitar el volcado implícito
  • ob_list_handlers — Listar todos los gestores de salida en uso
  • ob_start — Habilitar el uso de búferes de salida
  • output_add_rewrite_var — Agregar valores de re-escritura de URL
  • output_reset_rewrite_vars — Reestablecer los valores del mecanismo de re-escritura de URLs