headers_sent

(PHP 4, PHP 5, PHP 7)

headers_sentComprueba si o donde han enviado cabeceras

Descripción

headers_sent ([ string &$file [, int &$line ]] ) : bool

Comprueba si o donde han enviado cabeceras.

No se puede agregar más líneas de cabecera con la función header() una vez que el bloque de cabecera ya ha sido enviado. Con esta función se puede evitar recibir mensajes de error relacionados con cabecera HTTP. Otra opción es utilizar Output Buffering.

Parámetros

file

Si los parámetros opcionales file y line se establecen, headers_sent() pondrá el nombre del archivo PHP y número de línea donde la producción se inició en las variables file y line.

line

El número de línea donde inició la salida.

Valores devueltos

headers_sent() retornará FALSE Si no se han enviado encabezados HTTP o de lo contrario TRUE.

Ejemplos

Ejemplo #1 Ejemplos usando headers_sent()

<?php

// Si no se han enviado encabezados, enviar uno
if (!headers_sent()) {
    
header('Location: http://www.example.com/');
    exit;
}

// Un ejemplo usando los parámetros opcionales file y line, a partir de PHP 4.3.0
// Tenga en cuenta que $filename y $linenum se pasan para su posterior uso.
// No asigne los valores de antemano.
if (!headers_sent($filename$linenum)) {
    
header('Location: http://www.example.com/');
    exit;

// Lo más probable es generar un error aquí.
} else {

    echo 
"Headers already sent in $filename on line $linenum\n" .
          
"Cannot redirect, for now please click this <a " .
          
"href=\"http://www.example.com\">link</a> instead\n";
    exit;
}

?>

Notas

Nota:

Las cabeceras sólo serán accesibles y mostradas si se utiliza un SAPI que lo soporte.

Ver también

  • ob_start() - Activa el almacenamiento en búfer de la salida
  • trigger_error() - Generar un mensaje de error/advertencia/aviso de nivel de usuario
  • headers_list() - Devuelve una lista de encabezados de respuesta enviados (o listos para enviar)
  • header() - Enviar encabezado sin formato HTTP para una discusión más detallada de los asuntos planteados.