$_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 , чтобы он существовал.

' REMOTE_PORT '

Порт, используемый на компьютере пользователя для связи с веб-сервером.

'REMOTE_USER'

Аутентифицированный пользователь.

' REDIRECT_REMOTE_USER '

Аутентифицированный пользователь, если запрос перенаправляется внутренне.

' SCRIPT_FILENAME '

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

Примечание :

Если сценарий выполняется с помощью CLI, в качестве относительного пути, например, file.php или ../file.php , $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.

'SERVER_ADMIN'

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

'SERVER_PORT'

Порт на серверной машине, используемый веб-сервером для связи. Для настроек по умолчанию это будет ' 80'; использование SSL, например, изменит это на любой определенный вами безопасный HTTP-порт.

Примечание : Под Apache 2 необходимо установить UseCanonicalName = On, а также UseCanonicalPhysicalPort = Onдля того, чтобы получить физический (реальный) порт, иначе это значение может быть подделано и оно может возвращать или не возвращать значение физического порта. Небезопасно полагаться на это значение в контекстах, зависящих от безопасности.

'SERVER_SIGNATURE'

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

'PATH_TRANSLATED'

Путь к текущему сценарию на основе файловой системы (не корня документа) после того, как сервер выполнил какое-либо сопоставление виртуального и реального.

Примечание . Пользователи Apache 2 могут использовать AcceptPathInfo = Onвнутри httpd.conf для определения PATH_INFO .

'SCRIPT_NAME'

Содержит путь к текущему сценарию. Это полезно для страниц, которые должны указывать сами на себя. Константа __FILE__ содержит полный путь и имя текущего (т.е. включенного) файла.

'REQUEST_URI'

URI, который был предоставлен для доступа к этой странице; например, ' /index.html'.

' PHP_AUTH_DIGEST '

При выполнении дайджест-аутентификации HTTP эта переменная устанавливается в заголовок «Авторизация», отправленный клиентом (который затем следует использовать для соответствующей проверки).

' 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