Переменные сервера
Массив $_SERVER введен, начиная с РНР 4.1.0. До этой версии использовался глобальный массив $HTTP_SERVER_VARS, которые внутри функций требует обязательного объявления при помощи оператора global. Начиная с версии РНР 6.0, этот массив перестал поддерживаться.
'DOCUMENT_ROOT' |
Корневой каталог web-сервера, предназначенный для хранения HTML-документов, в соответствии с его конфигурацией. |
'GATEWAY_INTERFACE' |
Версия спецификации CGI, которая поддерживается web-сервером, например 'CGI/1.1'. |
'PATH_TRANSLATED' |
Полное локальное имя файла текущего скрипта. |
'PHP_AUTH_PW' |
Если РНР используется вместе с web-сервером Apache в режиме модуля, переменная содержит пароль пользователя, введенный в окне аутентификации. |
'PHP_AUTH_USER' |
Если РНР используется вместе с web-сервером Apache в режиме модуля, переменная содержит имя пользователя, введенное в окне аутентификации. |
'PHP_SELF' |
Путь к текущему скрипту относительно корня. |
'QUERY_STRING' |
Строка запроса, переданная скрипту. Задается для метода передачи данных GET, имеет вид: namel=valuel&name2=value2... |
'REMOTE ATTR' |
IP-адрес удаленного пользователя, который запросил данный скрипт. |
'REMOTE HOST' |
Имя узла удаленного пользователя, который запросил данный скрипт. |
'REMOTE_PORT' |
Номер порта удаленного пользователя, который запросил данный скрипт. |
'REQUEST_METHOD' |
Метод передачи данных, при помощи которого был загружен данный скрипт — GET, HEAD, POST или PUT. |
'REQUEST_URI' |
'URI' текущего скрипта, например 'index.php'. |
'SCRIPT_FILENAME' |
Полное абсолютное локальное имя скрипта. |
'SCRIPT_NAME' |
Путь к текущему скрипту относительно корня. |
'SERVER_ADMIN' |
E-mail администратора web-сервера. |
'SERVER_NAME' |
Имя хоста web-сервера. |
'SERVER_PORT' |
Порт web-сервера (обычно 80). |
Серверные переменные могут быть весьма полезны при разработке приложений. Ниже приведен пример отображения имени текущего скрипта:
<HTML> <HEAD> <TITLE>Идентификация скрипта</TITLE> </HEAD> <BODY> <H1>Идентификация скрипта</H1> <?php echo "Текущий скрипт: ", $_SERVER['PHP_SELF']; ?> </BODY> </HTML>
В результате выполнения будет выведена строка наподобие:
Текущий скрипт: /php/06/phpidentifier.php
Кроме элементов, перечисленных в таблице выше, массив $_SERVER содержит также информацию из заголовка HTTP-запроса. HTTP-запрос посылается web-серверу клиентом, а его заголовок содержит полезную информацию о браузере. Например, $_SERVER['HTTP_USER_AGENT'] содержит информацию о версии браузера (определению типа браузера посвящен следующий раздел главы). В таблице ниже перечислены те элементы массива $_SERVER, которые заполняются на основании заголовка HTTP-запроса. В зависимости от версии протокола и типа браузера те или иные поля в заголовке HTTP-запроса могут отсутствовать.
Переменная |
Поле заголовка |
Описание |
---|---|---|
'HTTP_ACCEPT_LANGUAGE' |
Accept-Language: |
Обозначение языка, который может корректно отображать браузер, например en (английский) или ru (русский). |
'HTTP_CONNECTION' |
Connection: |
Поле управляет соединением с web-сервером, обычно содержит значение Keep-Alive. |
'HTTP_HOST' |
Host: |
Имя хоста, к которому обращается браузер. |
'HTTP_REFERER' |
Referer: |
Адрес страницы, с которой осуществляется переход на запрошенную страницу. Заполняется браузером только в том случае, если переход осуществляется по гиперссылке (а не путем ввода адреса в соответствующее поле браузера). |
'HTTP_USER_AGENT' |
User-Agent: |
Строка, идентифицирующая браузер. |
'НТТР_АССЕРТ' |
Accept: |
Перечисление через запятую MIME-кодировок типов данных, которые может обработать браузер. |
'НТТР_АССЕРТ_CHARSЕТ' |
Accept-CharSet: |
Перечисление кодировок, которые поддерживает браузер. |
'НТТР_АССЕРТ_ENCODING' |
Accept-Encoding: |
Способы сжатия информации, которые поддерживает браузер, например, gzip. |
Автор: Стивен Хольцнер. Переводчик: С. Банников