Название не требует пояснений.
У меня есть хороший опыт работы с 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
выходную буферизацию, и, таким образом, все заголовки отправляются перед контентом, потому что он вызывается после вызова header
?
Или это работает по-другому?
header()
действительно игнорирует буферизацию вывода. Одна из причин использования буферизации вывода заключается в том, что вы можете отправлять заголовки HTTP «не в порядке», так как ответ буферизуется. Вы не можете отправлять HTTP-заголовки, как только вы отправляете какой-либо вывод (если только этот вывод не буферизуется).