<Полный PHP HTTP Ссылки
Определение и использование
header() функция посылает заголовок HTTP сырого клиенту.
Важно заметить , что header() должен вызываться перед любым фактическим выводом направляется (В PHP 4 , а затем вы можете использовать буферизацию вывода для решения этой проблемы):
<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>
Синтаксис
header(string,replace,http_response_code)
параметр | Описание |
---|---|
string | Необходимые. Задает строку заголовка для отправки |
replace | Необязательный. Указывает, должен ли заголовок заменить предыдущий или добавить второй заголовок. По умолчанию имеет значение ИСТИНА (will replace) . FALSE (allows multiple headers of the same type) использовать (allows multiple headers of the same type) и (allows multiple headers of the same type) |
http_response_code | Необязательный. Принудительный код ответа HTTP для заданного значения (available in PHP 4.3 and higher) |
Советы и примечания
Note: Начиная с PHP 4.4 эта функция предотвращает более одного заголовка , который будет послан сразу. Это защита от атак нагнетательных заголовка.
Пример 1
Запретить кэширование страниц:
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
Note: Есть варианты , которые пользователи могут установить , чтобы изменить настройки кэширования по умолчанию браузера. Посылая заголовки выше, вы должны переопределить любого из этих параметров и заставить браузер не кэшировать!
Пример 2
Пусть пользователю будет предложено сохранить сгенерированный файл PDF (заголовок Content-Disposition используется для обеспечения рекомендуемого файла и заставить браузер отобразить диалоговое окно сохранения):
<?php
header("Content-type:application/pdf");
// It will be called downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// The PDF source is in original.pdf
readfile("original.pdf");
?>
<html>
<body>
...
...
Note: Существует ошибка в Microsoft IE 5.5 , что предотвращает это работает. Ошибка может быть решена путем обновления до Service Pack 2 или более поздней версии.
<Полный PHP HTTP Ссылки