Как заголовки работают с выходной буферизацией в PHP?

Заголовок очевиден.

У меня есть хороший бит опыта с PHP, но я не уверен как header функционируйте работы между ob_start() и ob_end_clean().

Рассмотрите это:

ob_start();

echo "Some content";
header('X-Example-Header: foo');
echo "Some more content";

$output = ob_get_contents();
ob_end_clean();

echo $output;

Делает header функция игнорирует выходную буферизацию, и таким образом все заголовки отправляются перед содержанием, потому что это echoредактор после header звонить?

Или это работает некоторый другой путь?

11
задан Austin Hyde 24 June 2010 в 15:01
поделиться

1 ответ

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

17
ответ дан 3 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: