Получаем HTTP-заголовки запроса в PHP

Привет всем! Краткая заметка на тему того, как получить http headers запроса, который инициировал выполнение скрипта. Также стоит отметить, что в данном случае я использую php, как fastcgi, по-этому некоторые функции, которые позволяют решить поставленную задачу, не подходят.

Как выяснилось все очень просто и все передаваемые http-заголовки запроса благополучно хранятся в суперглобальном массиве $_SERVER. Пример:

Для создания запроса я воспользовался расширением для Google Chrome - REST Console.

В скрипте просто выводим значение $_SERVER. После нажатия кнопки Send получаем следующий вывод:

(
    ....
    [SERVER_PROTOCOL] => HTTP/1.1
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_SOFTWARE] => nginx/1.0.10
    ....
    [HTTP_CUSTOM_HEADER_2] => test2
    [HTTP_CUSTOM_HEADER_1] => test1
    ...
    [PHP_SELF] => /auth.php
    [REQUEST_TIME] => 1328733817
)

Как видите заголовки успешно сохранены в $_SERVER и носят название начинающееся с префикса "HTTP_" и продолжающееся именем заголовка в верхнем регистре с замененными знаками "-" на "_".