Как проверить, были ли заголовки уже отправлены на PHP


Я думаю, что большинство из нас знают о печально известной ошибке "Заголовки уже отправлены" в PHP. Могу ли я как-нибудь проверить, были ли уже отправлены заголовки?

Было бы очень удобно сделать это, прежде чем пытаться установить некоторые данные СЕАНСА или что-то подобное.

Спасибо!

 25
Author: Industrial, 2010-05-12

2 answers

PHP имеет функцию headers_sent() что позволяет вам проверить, отправлены ли уже заголовки, прежде чем предпринимать какие-либо действия. Вот как вы могли бы использовать эту функцию в своем коде:

if(headers_sent())
{ //if headers already sent out print some message.
echo "Please go to yahoo.com";
}
else{
//send the user automatically to test.php
header('Location: http://yahoo.com');
exit;
}
 37
Author: Russell Dias, 2014-12-01 22:48:34

Да, вы можете использовать функцию headers_sent.

Проверяет, были ли отправлены заголовки или куда они были отправлены.

Вы не можете добавить больше строк заголовка использование функции header() после того, как блок заголовка уже был отправлен. Используя эту функцию, вы можете, по крайней мере , предотвратить получение сообщений об ошибках, связанных с заголовком HTTP. Другой вариант - использовать буферизацию вывода.

Также может представлять интерес список заголовков, который возвращает массив всех заголовки отправлены.

 7
Author: ryeguy, 2010-05-12 16:11:11