$_SERVER

Оновлено: 12.05.2023

(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'

Ім'я файлу скрипта, що виконується в даний момент, відносно кореня документа. Наприклад, $_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'

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

'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'

Значення, вказане для директиви 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'

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

'PHP_AUTH_USER'

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

'PHP_AUTH_PW'

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

'AUTH_TYPE'

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

'PATH_INFO'

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

'ORIG_PATH_INFO'

Початкова версія 'PATH_INFO' до обробки PHP.

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

Приклад #1 Приклад $_SERVER

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

Зауважте:

Це "суперглобальна" або автоматична глобальна змінна. Це просто означає, що вона доступна у всіх областях видимості скрипта. Немає необхідності робити глобальну $змінну, щоб отримати доступ до неї у функціях або методах.