$_SERVER
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Информация о сервере и среде исполнения
Описание
Переменная $_SERVER - это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь. Тем не менее, многие эти переменные присутствуют в » спецификации CGI/1.1, так что вы можете ожидать их наличие.
Индексы
Вы можете найти (а можете и не найти) любой из следующих элементов в массиве $_SERVER. Обратите внимание, что немногие элементы, если они есть, будут доступны (или даже будут иметь какое-нибудь значение), если PHP запущен в командной строке.
- 'PHP_SELF'
- Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php. Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключенного) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта.
- 'argv'
- Массив агрументов, переданных скрипту. Когда скрипт запущен в командой строке, это дает C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса.
- 'argc'
- Содержит количество параметров, переданных скрипту (если запуск произведен в командной строке).
- 'GATEWAY_INTERFACE'
-
Содержит используемую сервером версию спецификации CGI;
к примеру '
CGI/1.1
'. - 'SERVER_ADDR'
- IP-адрес сервера, на котором выполняется текущий скрипт.
- 'SERVER_NAME'
-
Имя хоста, на котором выполняется текущий скрипт.
Если скрипт выполняется на виртуальном хосте,
здесь будет содержатся имя, определенное для этого виртуального хоста.
Замечание: В Apache 2 вы должны установить
UseCanonicalName = On
иServerName
. В противном случае это значение отразит имя хоста, предоставленное клиентом, которое может быть подделано. Небезопасно полагаться на это значение в контексте, требующем безопасности. - 'SERVER_SOFTWARE'
- Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос.
- 'SERVER_PROTOCOL'
-
Имя и версия информационного протокола, через который
была запрошена страница; к примеру '
HTTP/1.0
'; - 'REQUEST_METHOD'
-
Какой метод был использован для запроса страницы; к примеру '
GET
', 'HEAD
', 'POST
', 'PUT
'.Замечание:
PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был
HEAD
. - 'REQUEST_TIME'
- Временная метка начала запроса.
- 'REQUEST_TIME_FLOAT'
- Временная метка начала запроса с точностью до микросекунд.
- 'QUERY_STRING'
- Строка запроса, если есть, через которую была открыта страница.
- 'DOCUMENT_ROOT'
- Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.
- 'HTTP_ACCEPT'
-
Содержимое заголовка
Accept:
из текущего запроса, если он есть. - 'HTTP_ACCEPT_CHARSET'
-
Содержимое заголовка
Accept-Charset:
из текущего запроса, если он есть. Например: 'iso-8859-1,*,utf-8
'. - 'HTTP_ACCEPT_ENCODING'
-
Содержимое заголовка
Accept-Encoding:
из текущего запроса, если он есть. Например: 'gzip
'. - 'HTTP_ACCEPT_LANGUAGE'
-
Содержимое заголовка
Accept-Language:
из текущего запроса, если он есть. Например: 'en
'. - 'HTTP_CONNECTION'
-
Содержимое заголовка
Connection:
из текущего запроса, если он есть. Например: 'Keep-Alive
'. - 'HTTP_HOST'
-
Содержимое заголовка
Host:
из текущего запроса, если он есть. - 'HTTP_REFERER'
- Адрес страницы (если есть), с которой браузер пользователя перешёл на эту страницу. Этот заголовок устанавливается браузером пользователя. Не все браузеры устанавливают его, а некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, нельзя доверять этому заголовку.
- 'HTTP_USER_AGENT'
-
Содержимое заголовка
User-Agent:
из текущего запроса, если он есть. Эта строка, обозначающая браузер, который открыл данную страницу. Типичным примером является строка: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Помимо всего прочего, вы можете использовать это значение с функцией get_browser(), чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя. - 'HTTPS'
- Принимает непустое значение, если запрос был произведен через протокол HTTPS.
- 'REMOTE_ADDR'
- IP-адрес, с которого пользователь просматривает текущую страницу.
- 'REMOTE_HOST'
-
Удаленный хост, с которого пользователь просматривает текущую
страницу. Обратный поиск DNS основан на значении переменной
REMOTE_ADDR.
Замечание: Ваш сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache вам необходимо присутствие директивы
HostnameLookups On
в файле httpd.conf, чтобы эта переменная создавалась. См. также gethostbyaddr(). - 'REMOTE_PORT'
- Порт на удаленной машине, который используется для связи с сервером.
- 'REMOTE_USER'
- Аутентифицированный пользователь.
- 'REDIRECT_REMOTE_USER'
- Аутентифицированный пользователь, если запрос был перенаправлен изнутри.
- 'SCRIPT_FILENAME'
-
Абсолютный путь к исполняемому скрипту.
Замечание:
Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php, переменная $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.
- 'SERVER_ADMIN'
- Эта переменная получает свое значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определенное для данного виртуального хоста.
- 'SERVER_PORT'
-
Порт на компьютере сервера, используемый сервером для соединения.
Для установок по умолчанию, значение будет '
80
'; используя SSL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить
UseCanonicalName = On
иUseCanonicalPhysicalPort = On
, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности. - 'SERVER_SIGNATURE'
- Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено.
- 'PATH_TRANSLATED'
-
Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.
Замечание: Пользователи Apache 2 могут использовать директиву
AcceptPathInfo = On
в конфигурационном файле httpd.conf для задания переменной PATH_INFO. - 'SCRIPT_NAME'
- Содержит путь к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (то есть включенного) файла.
- 'REQUEST_URI'
-
URI, который был предоставлен для доступа к этой странице.
Например, '
/index.html
'. - 'PHP_AUTH_DIGEST'
- При выполнении аутентификации HTTP Digest этой переменной присваивается заголовок 'Authorization', отправленный клиентом (который затем следует использовать для проведения соответствующей проверки).
- 'PHP_AUTH_USER'
- При выполнении HTTP-аутентификации этой переменной присваивается имя пользователя, предоставленное пользователем.
- 'PHP_AUTH_PW'
- При выполнении HTTP-аутентификации этой переменной присваивается пароль, предоставленный пользователем.
- 'AUTH_TYPE'
- При выполнении HTTP-аутентификации этой переменной присваивается тип аутентификации, который используется.
- 'PATH_INFO'
-
Содержит любой предоставленный пользователем путь, содержащийся после
имени скрипта, но до строки запроса, если она есть.
Например, если текущий скрипт запрошен по URL
http://www.example.com/php/path_info.php/some/stuff?foo=bar,
то переменная $_SERVER['PATH_INFO'] будет содержать
/some/stuff
. - 'ORIG_PATH_INFO'
- Исходное значение переменной 'PATH_INFO' перед обработкой PHP.
Примеры
Пример #1 Пример использования $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
Результатом выполнения данного примера будет что-то подобное:
www.example.com
Примечания
Замечание:
Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает, что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.