PHP

Важная глобальная переменная в PHP $_SERVER

В переменную $_SERVER PHP-интерпретатор записывает переменные, которые были получены от сервера.
Как посмотреть какие есть переменные в данном массиве?

echo print_r($_SERVER,true);

ли вызвать функцию phpinfo(), которая выводит всю информацию о PHP-интерпретаторе.


Рассмотрим самые необходимые переменные из данного массива:
$_SERVER['DOCUMENT_ROOT'] - путь к корневой директории сервера.

Выводит значение с конфигурационного файла httpd.conf директива DocumentRoot.

Пример: Если DocumentRoot присвоено значение "D:/server/www", то $_SERVER['DOCUMENT_ROOT'] будет содержать значение "D:/server/www".

$_SERVER['HTTP_HOST'] - имя сервера, как правило, совпадает с доменным именем сайта, расположенного на сервере $_SERVER['SERVER_NAME']. Пример: artana.ru
$_SERVER['HTTP_ACCEPT'] - описывает предпочтения клиента относительно типа документа. Содержимое этого элемента извлекается из HTTP-заголовка Accept, который присылает клиент серверу.

Пример: Клиент присылает HTTP-заголовка Accept, в котором: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*

Заголовок Accept позволяет уточнить медиа-тип, который предпочитает получить клиент в ответ на свой запрос. Этот заголовок позволяет сообщить серверу, что ответ ограничен небольшим множеством предпочитаемых типов. Символ * используется для группирования типов в медиа-ряду.
Пример: символом */* задается использование всех типов, а обозначение type/* определяет использование всех подтипов выбранного типа type.
$_SERVER['HTTP_ACCEPT_LANGUAGE'] - описывает предпочтения клиента относительно языка.

Данная информация извлекается из HTTP-заголовка Accept-Language, который присылает клиент серверу. Пример: Accept-Language: ru, en; q=0.7

Содержимое $_SERVER['HTTP_ACCEPT_LANGUAGE'] можно использовать для определения национальной принадлежность посетителей.

Однако результаты будут приблизительными, так как многие пользователи используют английские варианты браузеров, которые будут извещать сервер о том, что посетитель предпочитает лишь один язык — английский.

$_SERVER['HTTP_REFERER'] - адрес страницы, с которой перешёл посетитель на данную страницу. Переход должен осуществляться по ссылке.

$_SERVER['HTTP_USER_AGENT'] - содержит информацию о типе и версии браузера и операционной системы посетителя.

Пример: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36

$_SERVER['REMOTE_ADDR'] - IP-адрес клиента. Данная переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер.

Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

Пример: echo getenv(HTTP_X_FORWARDED_FOR);

$_SERVER['SCRIPT_FILENAME'] - абсолютный путь к файлу от корня диска. Пример: "/var/share/www/test/index.php"
$_SERVER['SERVER_NAME'] - имя сервера, как правило, совпадающее с доменным именем сайта, расположенного на нём. Пример: artana.ru
$_SERVER['PHP_SELF'] - путь до имени скрипта, начиная от корневой директории виртуального хоста.

Пример: Скрипт находится по адресу: http://www.mysite.ru/test/index.php?id=112&id_art=512

$_SERVER['PHP_SELF'] = "/test/index.php".

Как правило, этот же фрагмент помещается в $_SERVER['SCRIPT_NAME'].

$_SERVER['REQUEST_URI'] - содержит имя скрипта, начиная от корневой директории виртуального хоста.

Пример: http://www.mysite.ru/test/index.php?id=112&id_art=512 $_SERVER['REQUEST_URI'] = "/test/index.php?id=112&id_art=512".
Полный путь к скрипту echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

$_SERVER['REQUEST_TIME'] - Unix - время выполнения запроса Пример: 1446124611

php

Администратор

Хороший ученик видит ошибки своего учителя, но молчит о них почтительно, ибо самые эти ошибки служат ему в пользу и наставляют его на прямой путь