просто о сложном


Массив переменных $_SERVER

tags: php

$_SERVER введен начиная с версии PHP 4.1.0. В предыдущих версиях использовался $HTTP_SERVER_VARS. $_SERVER это массив переменных создаваемый web-сервером. Нет гарантии, что каждый web-сервер будет предоставлять все нижеперечисленные переменные, сервер может опустить некоторые позиции или добавить новые, здесь не указанные. $_SERVER доступен во всех областях видимости скрипта, то есть не нужно писать global $_SERVER для доступа к нему внутри функций и методов, как это делалось с $HTTP_SERVER_VARS.

  • PHP_SELF
    Имя файла исполняемого в данный момент скрипта; относительно document root. Например, $_SERVER['PHP_SELF'] в скрипте с адресом https://example.com/test.php даст /test.php. Если PHP запущен как процесс командной строки, эта переменная недоступна.

  • argv
    Массив аргументов, передаваемых скрипту. Если скрипт работает из командной строки, это даёт доступ, в стиле С, к параметрам командной строки. Если вызывается через метод GET, будет содержать строку запроса.

  • argc
    Содержит количество параметров командной строки, передаваемых скрипту (если запущен из командной строки).

  • GATEWAY_INTERFACE
    Содержит вариант спецификации CGI, используемой сервером, например CGI/1.1

  • SERVER_NAME
    Имя хоста сервера, на котором выполняется текущий скрипт. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста.
    Например, у текущей страницы - izi.li

  • SERVER_SOFTWARE
    Строка-идентификатор сервера, выдаваемая в шапках (headers) при ответах на запросы.
    Пример: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4

  • SERVER_PROTOCOL
    Имя и версия информационного протокола, по которому страница запрошена, например, HTTP/2.0

  • SERVER_ADMIN
    Значение, заданное в директиве SERVER_ADMIN (для Apache) в файле конфигурации web-сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста.

  • SERVER_PORT
    Порт на серверной машине, используемый web-сервером для соединения. По умолчанию это 80; использование SSL, к примеру, изменит это значение на то, которое вы определили для порта HTTPS.

  • SERVER_SIGNATURE
    Строка, содержащая версию сервера и имя виртуального хоста, добавленная к генерируемым сервером страницам, если эта возможность включена.

  • DOCUMENT_ROOT
    Корневая директория документов, под которой выполняется текущий скрипт, как определено в файле конфигурации сервера.

  • HTTP_ACCEPT
    Содержимое заголовка Accept: из текущего запроса, если имеется.
    Пример: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

  • HTTP_ACCEPT_CHARSET
    Содержимое заголовка Accept-Charset: из текущего запроса, если имеется.
    Пример: utf-8

  • HTTP_ACCEPT_ENCODING
    Содержимое заголовка Accept-Encoding: из текущего запроса, если имеется.
    Пример: gzip

  • HTTP_ACCEPT_LANGUAGE
    Содержимое заголовка Accept-Language: из текущего запроса, если имеется.
    Пример: en

  • HTTP_CONNECTION
    Содержимое заголовка Connection: из текущего запроса, если имеется.
    Пример: Keep-Alive

  • HTTP_HOST
    Содержимое заголовка Host: из текущего запроса, если имеется.
    Например, у текущей страницы - izi.li

  • HTTP_REFERER
    Адрес страницы (если имеется), с которой был осуществлен переход на текущую страницу. Устанавливается пользовательским агентом (браузером). Агенты могут устанавливать данное значение некорректно - полностью доверять ему нельзя! Можно использовать для примитивной защиты

  • HTTP_USER_AGENT
    Содержимое заголовка User_Agent из текущего запроса, если имеется. Проще говоря это браузер пользователя.
    Пример: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)

  • REMOTE_ADDR
    IP-адрес, с которого пользователь просматривает текущую страницу.

  • REMOTE_PORT
    Порт на пользовательской машине для соединения с web-сервером.

  • REMOTE_HOST
    Удалённый хост, с которого пользователь просматривает текущуюстраницу.

  • REMOTE_USER
    Имя пользователя (никогда не видел, чтобы было заполнено, поэтому примеров нет ;)

  • HTTP_CLIENT_IP
    HTTP_X_FORWARDED_FOR
    HTTP_X_FORWARDED
    HTTP_X_CLUSTER_CLIENT_IP
    HTTP_FORWARDED_FOR
    HTTP_FORWARDED
    Объединил в один пункт, поскольку всё это IP-адрес пользователя до переадресации (если она была).

  • SCRIPT_FILENAME
    Абсолютный путь к файлу исполняемого в данный момент скрипта

  • PATH_TRANSLATED
    Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.

  • SCRIPT_NAME
    Путь к текущему скрипту. $_SERVER['SCRIPT_FILENAME'] - $_SERVER['SCRIPT_NAME'] = document root

  • HTTPS
    Принимает непустое значение, если запрос был произведён через протокол HTTPS.

  • REQUEST_METHOD
    Какой метод запроса был использован для доступа к странице GET, HEAD, POST, PUT.

  • REQUEST_TIME
    Временная метка начала запроса.

  • REQUEST_TIME_FLOAT
    Временная метка начала запроса с точностью до микросекунд.

  • REQUEST_URI
    URI, который был задан для доступа к данной странице, например, /index.htm.

  • QUERY_STRING
    Строка запроса, если имеется, это параметры в урле после знака вопроса, не включая его.

  • PHP_AUTH_USER
    При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается username, предоставляемое пользователем.

  • PHP_AUTH_PW
    При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается password, предоставляемый пользователем.

  • PHP_AUTH_TYPE
    При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается тип аутентификации.

Быть добру!

posted on october 12, 2008, updated on september 08, 2025

Комментарии

просто в дополнение ...
в любом месте своего скрипат пишем -

phpinfo(32);

увидете все переменные используемые вышим скриптом в данный момент - все серверные переменные включенные на вашем сервере. и переменные посланные ГЕТом или ПОСТом.

entonee 28.11.2008 11:09 #

Стоит обратить внимание на то, что SERVER_NAME даёт префикс 'www.', если он написан в адресной строке.

Быдлокодер 11.01.2012 10:39 #
Отправка новых комментариев временно отключена. Извините, работаем над этим.


tags cloud