$_SERVER
PHP Manual
PHP Manual»Попередньо визначені змінні»$_SERVER

$_SERVER

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SERVER — Інформація про серверне та виконавче середовище

Опис

Змінна $_SERVER — це масив, що містить таку інформацію як заголовки, шляхи та розташування скриптів. Записи в цьому масиві створює вебсервер. Немає гарантії, що кожен вебсервер буде надавати всі ці записи; Деякі дані може бути опущено або надано інші, незазначені в списку, який наведено нижче. Тим не менш, більша частина цих даних описані в » специфікації CGI/1.1 і, ймовірно, будуть визначені.

Зауваження:

Під час виконання PHP в командному рядку більшість з цих записів не доступні або мають інше значення.

Разом з елементами, описаними нижче, PHP створює додаткові елементи зі значеннями заголовків запиту. Ці елементи матимуть ключі з назвою, що складається з HTTP_ та назви заголовка великими буквами та підкресленнями замість дефісів. Наприклад, заголовок Accept-Language буде доступний як $_SERVER['HTTP_ACCEPT_LANGUAGE'].

Індекси

"PHP_SELF"

Шлях до файлу, де запущено скрипт, відносно кореневої теки вебсервера (document root). Наприклад, $_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"

Коренева директорія документів (document root), в якій скрипт виконується; вона визначається в конфігураційному файлі вебсервера.

"HTTPS"

Має непорожнє значення, якщо скрипт було запитано через протокол HTTPS.

"REMOTE_ADDR"

IP-адреса, з якої користувач переглядає поточну сторінку.

"REMOTE_HOST"

Назва хоста, з якого користувач переглядає поточну сторінку. Зворотній пошук DNS базується на REMOTE_ADDR користувача.

Зауваження:

Вебсервер необхідно сконфігурувати, так щоб створювалася ця змінна. Наприклад, в Apache у файлі httpd.conf потрібна опція HostnameLookups On. Див. також gethostbyaddr().

"REMOTE_PORT"

Порт, який було використано на комп'ютері користувача для зв'язку з вебсервером.

"REMOTE_USER"

Ім'я авторизованого користувача.

"REDIRECT_REMOTE_USER"

Ім'я авторизованого користувача, якщо запит має внутрішню переадресацію.

"SCRIPT_FILENAME"

Абсолютний шлях до поточного скрипта, що виконується.

Зауваження:

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

"SERVER_ADMIN"

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

"SERVER_PORT"

Порт сервера, який використовується вебсервером для зв'язку. Початково, встановлюється значення "80". Але використовуючи, наприклад, SSL, це значення буде тим, що вказано в конфігураційному файлі для з'єднання через безпечний HTTP-порт.

Зауваження:

Для того, щоб отримати фізичний (реальний) порт на Apache 2, необхідно встановити UseCanonicalName = On і UseCanonicalPhysicalPort = On. В іншому випадку це значення може підмінятись, а тому не буде повертатись значення фізичного порту. Покладатися на це значення в контексті безпеки — небезпечно.

"SERVER_SIGNATURE"

Рядок, що містить версію вебсервера та назву віртуального хоста, які додаються до сторінок, якщо на вебсервері ця функціональність підключена.

"PATH_TRANSLATED"

Шлях, що базується на файловій системі (а не на шляху до кореневої теки документів), який веде до поточного скрипта. PATH_TRANSLATED матиме значення, якщо створено зіставлення між назвою віртуального хоста та реальним шляхом до його теки.

Зауваження:

Користувачі Apache 2 можуть використовувати AcceptPathInfo = On у файлі httpd.conf, щоб визначити PATH_INFO.

"SCRIPT_NAME"

Містить шлях до поточного скрипта. Це є корисним для сторінок, які повинні посилатись на самих себе. Константа __FILE__ містить повний шлях та назву поточного файлу.

"REQUEST_URI"

URI, який передається для доступу до поточного скрипта. Наприклад, "/index.html".

"PHP_AUTH_DIGEST"

Під час виконання автентифікації Digest HTTP, цій змінній передається значення заголовка "Authorization" (яке потім використовується для відповідної перевірки), що присилає клієнт.

"PHP_AUTH_USER"

Під час HTTP-автентифікації цій змінній передається ім'я користувача.

"PHP_AUTH_PW"

Під час HTTP-автентифікації цій змінній передається пароль користувача.

"AUTH_TYPE"

Під час HTTP-автентифікації, цій змінній передається значення типу автентифікації.

"PATH_INFO"

Містить будь-який шлях, вказаний клієнтом між назвою скрипта та рядком запиту. Наприклад, якщо скрипт запитувати через URI http://www.example.com/php/path_info.php/some/stuff?foo=bar, то $_SERVER['PATH_INFO'] міститиме /some/stuff.

"ORIG_PATH_INFO"

Необроблене інтерпретатором значення "PATH_INFO".

Приклади

Приклад #1 Використання $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

Поданий вище приклад виведе щось схоже на:

www.example.com

Примітки

Зауваження:

Це "суперглобальна" або автоматична глобальна змінна. Тобто ця змінна доступна будь-де в скрипті та її не потрібно оголошувати як global $variable;, щоб отримати доступ до неї всередині функції чи метода.

Прогляньте також

To Top