$_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'];
?>
Зауважте:
Це "суперглобальна" або автоматична глобальна змінна. Це просто означає, що вона доступна у всіх областях видимості скрипта. Немає необхідності робити глобальну $змінну, щоб отримати доступ до неї у функціях або методах.