PHP header()Функции
Полное справочное руководство по PHP HTTP
Определение и использование
Функция header() отправляет необработанный HTTP-заголовок клиенту.
Важно понимать, что функция header() должна быть вызвана до отправки любого фактического вывода (в PHP 4 и выше для решения этой проблемы можно использовать буферизацию вывода):
<?php
// Это приводит к ошибке.
// Вывод выше находится перед вызовом header()
header('Location: http://www.example.com/');
?>
Синтаксис
| Parameters | Описание |
|---|---|
| string | Обязательный. Указывает строку заголовка для отправки. |
| замена | Необязательный. Указывает, должен ли заголовок заменить предыдущий заголовок или добавить второй заголовок. По умолчанию TRUE (заменить). FALSE (разрешает несколько заголовков одного типа). |
| http_response_code | Необязательный. Принудительно устанавливает код ответа HTTP в указанное значение. (Доступно в PHP 4.3 и выше) |
Советы и примечания
Примечание:Начиная с PHP 4.4, эта функция предотвращает одновременную отправку нескольких заголовков. Это защита от атак с внедрением заголовков.
Пример 1
Отключить кэширование страницы:
// Дата в прошлом
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Примечание:Пользователи могут задать параметры, изменяющие настройки кэширования браузера по умолчанию. Отправляя указанные выше заголовки, вы можете переопределить любые из этих настроек и заставить браузер не кэшировать!
Пример 2
Предложите пользователю сохранить созданный PDF-файл (заголовок Content-Disposition используется для указания рекомендуемого имени файла и принудительного отображения диалогового окна сохранения в браузере):
header("Content-type:application/pdf");
// Он будет называться downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// Исходный PDF-файл находится в original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Примечание:В Microsoft IE 5.5 есть ошибка, которая препятствует работе вышеописанного механизма. Обновление до Service Pack 2 или более поздней версии может исправить эту ошибку.
Полное справочное руководство по PHP HTTP Другие расширения