header (PHP 3 <= 3.0.18, PHP 4 >= 4.0.0) header -- Посылает HTTP заголовокОписаниеint header (string string [, bool replace])
header() используется для посылки HTTP заголовка. Большую информацию о HTTP
заголовках можно узнать в HTTP/1.1 спецификации.
Необязательный параметр replace указывает, должен ли быть замещен
предыдущий подобный заголовок или добавить
второй заголовк подобного типа. По
умолчанию он будет замещен, но если этот
аргумент вы уставновите в FALSE, то сможете манипулировать несколькими
заголовками одного типа. Например:
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM',false); |
Существует два специальных заголовка.
Первый - заголовок "Location". Он не только
посылает этот заголовок броузеру, но и
возвращает броузеру код REDIRECT
(302).
header("Location: http://www.php.net/"); /* Переадресация
броузера на вебсайт PHP */
exit; /* Будьте уверены,
что код ниже не будет исполнен после переадресации. */ |
Примечание:
HTTP/1.1 требует абсолютный адрес в
качестве аргумента в
Location:, но некоторые клиенты принимают и
относительные URL. Вы часто можете
использовать $HTTP_SERVER_VARS['HTTP_HOST'],
$HTTP_SERVER_VARS['PHP_SELF'] и dirname(), чтобы сделать относительный URL абсолютным:
header("Location: http://".$HTTP_SERVER_VARS['HTTP_HOST']
."/".dirname($HTTP_SERVER_VARS['PHP_SELF'])
."/".$relative_url); |
Следующие специальные заголовки - все HTTP
заголовки, начинающиеся со строки, "HTTP/" (регистр несущественен), которые будут
использованы для определения статуса кода
HTTP для посылки. Например, если у вас Apache
настроен, чтобы использовать скрипт,
обрабатывающий запросы об отсутствующих
файлах (используя директиву ErrorDocument), вы можете убедиться, что ваш скрипт
производит надлежащий код статуса. header("HTTP/1.0 404 Not Found"); |
Примечание: В PHP 3 это работает, только
если PHP настроен как модуль Apache. Вы можете
добиться такого же эффекта, используя
заголовк
Status.
header("Status: 404 Not Found"); |
Скрипты PHP часто генерируют динамическое
содержание, которое не должно быть
кешировано броузером или прокси-сервером.
Многие прокси и броузеры могут быть
настроены на запрещение кеширования.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// Дата указывает на прошлое
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// всегда обновлена
header("Cache-Control: no-store, no-cache, must-revalidate");
// HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0 |
Предупреждение: Вы можете обнаружить,
что ваши страницы не кешируются даже без
добавления вышеуказанных заголовков.
Существуют опции, которые пользователи
могут включать, чтобы установить на
своем броузере иной порядок кеширования.
Помните, что функция header() должна быть вызвана раньше, чем что бы то
ни было. Это распространенная ошибка при
вызове include() или require(), или другой функции доступа к файлам, или
наличие пустых строк или пробелов до вызова
header().
<?php require("user_logging.inc") ?>
<?php header ("Content-type: audio/x-pn-realaudio"); ?>
// Broken, Note the blank lines above |
Если вы хотите, чтобы пользователю был
послан запрос по поводу сохранения данных,
которые вы посылаете, такие как
сгенерированный PDF файл, вы можете
использовать заголовок Content-Disposition, чтобы применить рекомендуемое имя файла и
заставить броузер показать сохраненный
диалог.
<?php
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=downloaded.pdf");
/* ... output pdf file ... */ |
<-Назад
Список всех функций Если вы заметили ошибку, неточность, либо хотите опубликовть свой перевод неуказанных в разделе функций, пожалуйста, напишите по этому адресу.
|