Полезные хитрости кодинга: То, что приходится каждый день искать в Интернете…

Установка кода ответа HTTP на PHP

Заголовки HTTP, которые зачастую приходится выводить на PHP:

// Обычный ответ. Все ОК. Иногда нужно выводить этот заголовок, если при использовании rewrite сервером устанавливается код 404.
header('HTTP/1.1 200 OK');

// Страница не найдена. Код 404.
header('HTTP/1.1 404 Not Found');

// Доступ запрещен. Код 403.
header('HTTP/1.1 403 Forbidden');

// Перенаправление. Страница изменила свое местоположение.
// Этот тип перенаправления следует использовать практически всегда, ибо поисковики благодаря ему обновляют адреса страниц в своих индексах.
header('HTTP/1.1 301 Moved Permanently');

// Временное пренаправление.
// Его следует использовать только в одном случае: Ваш скрипт получил POST запрос, обработал его и перенаправляет на страницу с результатом.
header('HTTP/1.1 302 Found');

 // Ошибка на сервере
header('HTTP/1.1 500 Internal Server Error');

// Перенаправление на указанный адрес. Следует использовать с 301 или 302.
header('Location: http://www.example.org/');

// Перенаправление на указанный адрес с задержкой.
header('Refresh: 10; url=http://www.example.org/');
print 'Вы будете перенаправлены через 10 секунд.';

// Принудительное указание языка страницы
header('Content-language: ru');

// Установка времени последнего изменения (для правильного кеширования)
$time = time() - 60; // или filemtime($fn), и т.п.
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');

// Заголовок, сообщающий бразуеру, что содержимое страницы не изменилось
header('HTTP/1.1 304 Not Modified');

// Принудительная установка длины cодержимого ответа
header('Content-Length: 1234');

// Заголовки для выдачи окна скачивания файла
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="example.zip"');
header('Content-Transfer-Encoding: binary');
// ... выдача файла в поток ответа:
readfile('example.zip');

// Отключение кеширования для текущего документа
header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Дата в прошлом
header('Pragma: no-cache');

// Установка типа содержимого
header('Content-Type: text/html; charset=utf-8');
header('Content-Type: text/plain'); // текстовый файл
header('Content-Type: image/jpeg'); // изображение в формате JPG
header('Content-Type: application/zip'); // ZIP-файл
header('Content-Type: application/pdf'); // PDF-файл
header('Content-Type: audio/mpeg'); // Аудио MPEG (MP3,...)
header('Content-Type: application/x-shockwave-flash'); // Анимация Flash

// Вывод сообщения авторизации
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
print 'Этот текст будет отображается пользователю, если он нажмет';
print '"Отмена" или введет неправильные реквизиты доступа.';
  • Привет, полезный сниппет. Можно утяну к себе? Ссылку на оригинальный пост, естественно оставлю.

  • Да, конечно.

Вы можете следить за обсуждением с помощью RSS 2.0 ленты.