(PHP 4, PHP 5, PHP 7, PHP 8)
headers_sent — Indica si los encabezados HTTP ya han sido enviados
Verifica si los encabezados HTTP ya han sido enviados.
No es posible enviar más encabezados con la función header() una vez que el bloque de encabezados ha sido cerrado. Mediante esta función, se puede al menos evitar la visualización de los errores HTTP relacionados. Otra opción consiste en utilizar el control de salida.
filename
Si los argumentos opcionales filename
y line
son proporcionados, headers_sent()
va a colocar el nombre del archivo fuente y el número de línea que iniciaron
la salida, en las variables filename
y line
.
Nota:
Si la salida comenzó antes de la ejecución del archivo fuente PHP (por ejemplo debido a un error de inicio), el argumento
nombre del archivo
será definido como una cadena vacía.
line
El número de línea donde ocurrió la salida.
headers_sent() devuelve false
si ningún encabezado
ha sido enviado, o true
en caso contrario.
Ejemplo #1 Ejemplo con headers_sent()
<?php
// Si ningún encabezado ha sido enviado, enviemos uno
if (!headers_sent()) {
header('Location: http://www.example.com/');
exit;
}
// Aquí hay un ejemplo de uso de los argumentos opcionales de archivo y línea.
// Tenga en cuenta que $filename y $linenum son transmitidos para su uso posterior.
// No los asigne antes de utilizarlos.
if (!headers_sent($filename, $linenum)) {
header('Location: http://www.example.com/');
exit;
// Probablemente se generará un error aquí
} else {
echo "Los encabezados ya han sido enviados, desde el archivo $filename en la línea $linenum\n" .
"Por lo tanto, no es posible redirigirlo automáticamente, así que por favor
haga clic <a href=\"http://www.example.com\">aquí</a>.\n";
exit;
}
?>
Nota:
Las cabeceras sólo serán accesibles y mostradas si se utiliza un SAPI que lo soporte.