(PHP 4, PHP 5, PHP 7)
headers_sent — Comprueba si o donde han enviado cabeceras
&$file
[, int &$line
]] )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.
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.
headers_sent() retornará FALSE
Si no se han
enviado encabezados HTTP o de lo contrario TRUE
.
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;
}
?>
Nota:
Las cabeceras sólo serán accesibles y mostradas si se utiliza un SAPI que lo soporte.