Новые книги

Чем важна и интересна эта книга? В первую очередь она позволяет детально разобраться в том, что такое Биткойн, как работает сеть, как создать криптовалютный кошелек и обезопасить его от взлома и много, много другой полезной информации, которой необходимо владеть не только начинающим пользователям, но и продвинутым адептам криптовалют. Книга позволяет:

— познакомиться с биткойном поближе;

— узнать, чем биткойн может оказаться вам полезен;

— усвоить правила безопасности и хранения криптомонет.
В настоящей монографии в результате объединения практических знаний в области рекламы с научными методами исследования впервые в отечественной научной и практической литературе проводится комплексный анализ различных подходов к изучению эффективности рекламного текста в СМИ, а также критериев ее оценки и методик тестирования. Процесс создания эффективного рекламного текста рассмотрен во всей полноте и логической последовательности — от выбора стратегии рекламирования в зависимости от маркетингового контекста размещения, через решение задач медиапланирования и до разработки рекламного текста с учетом исходных маркетинговых данных и параметров медиапланирования, а также в зависимости от медиаконтекста его размещения. В конце работы приводятся специальные чек-листы для предварительной комплексной оценки и тестирования эффективности рекламного текста в различных СМИ, которые позволят существенно оптимизировать рекламные вложения и повысить результативность работы рекламистов.

Работа будет интересна аспирантам и преподавателям дисциплин, связанных с рекламой, а также рекламным практикам, сотрудникам рекламных отделов и служб предприятий и СМИ.

header

Учебник РНР
Назад Вперёд

header

(PHP 3, PHP 4)

header - отправляет "сырую" HTTP-шапку/header.

Описание

int header (string string [, bool replace])

header() используется для отправки необработанных HTTP-шапок. См. в спецификации HTTP/1.1 информацию о HTTP headers.

Необязательный параметр replace указывает, должна ли шапка замещать предыдущую аналогичную шапку, или нужно добавить вторую header того же самого типа. По умолчанию выполняется замещение, но, если вы передаёте FALSE в качестве второго аргумента, вы можете форсировать создание нескольких headers одного типа. Например:

header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM',false);

Здесь два особых вызова шапок. В первом это header, начинающийся строкой "HTTP/" (регистр не имеет значения), используемый для создания HTTP статус-кода для отправки. Например, если вы сконфигурировали Apache для использования PHP-скрипта для обработки запросов отсутствующих файлов (используя директиву ErrorDocument), вам потребуется удостовериться, что ваш скрипт генерирует соответствующий статус-код.

<?php
header("HTTP/1.0 404 Not Found");
?>

Примечание: строка шапки HTTP-статуса всегда будет отправляться первой клиенту, независимо от того, идёт вызов header() первым или нет. Этот статус может быть переопределён вызовом header() с новой строкой статуса в любое время, если только HTTP headers уже не отправлены.

Примечание: в PHP 3 это работает только в том случае, если PHP скомпилирован как Apache-модуль. Вы может добиться того же эффекта, используя шапку Status.

header("Status: 404 Not Found");

Второй особый случай это "Location:" header. Здесь header не только отсылается обратно браузеру, но также возвращается статус-код REDIRECT (302), если только какой-нибудь 3xx статус-код не был уже установлен.

header("Location: http://www.example.com/"); /* Redirect browser */
exit;                 /* Убедитесь, что последующий код не
                         выполняется, когда мы перенаправляем. */

Примечание: HTTP/1.1 требует абсолютного URI в качестве аргумента для Location: включая схему, имя хоста и абсолютный путь, но некоторые клиенты принимают относительные URI. Как правило вы можете сами использовать $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] и dirname() для создания абсолютного URI из относительного:

header("Location: http://".$_SERVER['HTTP_HOST']
                      .dirname($_SERVER['PHP_SELF'])
                      ."/".$relative_url);

PHP-скрипты часто генерируют динамическое содержимое, которое обязано не кэшироваться клиентским браузером или proxy-кэшами между клиентским браузером и сервером. Во многих прокси и клиентах можно отключать кэширование.

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

Примечание: вы можете обнаружить, что ваши страницы не кэшируются, даже если вы не выводите все выше указанные шапки. Есть опции, которые могут быть установлены пользователями в своих браузерах, изменяющие поведение по умолчанию кэширования. Отправляя вышеуказанные шапки, вы должны переопределить любые установки, которые иначе могут кэшировать ваши скрипты.

Кроме того, session_cache_limiter() и установка конфигурации session.cache_limiter могут использоваться для автоматической генерации корректны шапок кэширования, когда используются сессии.

Помните, что header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле, или из PHP. Очень частой ошибкой является чтение кода функциями include() или require(), или другой функцией доступа к файлу, и наличие пробелов или пустых строк, которые выводятся до вызова header(). Та же проблема возникает при использовании единого PHP/HTML-файла.

<?php header ("Content-type: audio/x-pn-realaudio"); ?>
// нарушение: обратите внимание на пустую строчку вверху

Примечание: в PHP 4 вы можете использовать буферизацию вывода для решения этой проблемы, передавая браузеру весь ваш вывод, буферизуемый на сервере до отправки. Вы можете сделать это вызовом ob_start() и ob_end_flush() в вашем скрипте, или установив директиву конфигурации output_buffering в файле php.ini или файлах конфигурации сервера.

Если вы хотите, чтобы пользователю задавался вопрос о сохранении данных, высылаемых вами, таких как сгенерированный PDF-файл, вы можете использовать шапку Content-Disposition для предоставления рекомендуемого файла и форсировать отображение браузером диалога save.

<?php
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=downloaded.pdf");

/* ... вывод pdf-файла ... */

Примечание: в Microsoft Internet Explorer 4.01 имеется баг, не дающий реализовать это. Средства от этого нет. Также имеется баг в Microsoft Internet Explorer 5.5, но его можно исправить, обновив до Service Pack 2 или новее.

Примечание: если safe mode включён, uid скрипта добавляется к части realm шапки WWW-Authenticate, если вы устанавливаете эту шапку (используется для HTTP Authentication).

См. также headers_sent(), setcookie() и раздел HTTP-аутентификация.


Назад Оглавление Вперёд
Функции HTTP Вверхheaders_sent