Server - суперглобальний масив
У масив $ _SERVER PHP-інтерпретатор поміщає змінні, отримані від сервера. Без даних змінних складно організувати повноцінну підтримку Web-додатків. Нижче наводиться опис найбільш важливих елементів суперглобального масиву $ _SERVER.
$ _SERVER [ 'DOCUMENT_ROOT']
Елемент $ _SERVER [ 'DOCUMENT_ROOT'] містить шлях до кореневої директорії сервера, якщо скрипт виконується у віртуальному хості, в даному елементі вказується шлях до кореневої директорії віртуального хоста. Тобто в конфігураційному файлі httpd.conf віртуальний хост має директиву DocumentRoot, якій присвоєно значення "D: / main", елемент $ _SERVER [ 'DOCUMENT_ROOT'] буде містити значення "D: main".
$ _SERVER [ 'HTTP_ACCEPT']
В елементі $ _SERVER [ '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.
Медіа-типи відокремлюються один від одного комами.
Кожен медіа-ряд характеризується також додатковим набором параметрів. Одним з них є так званий відносний коефіцієнт переваги q, який приймає значення від 0 до 1, відповідно, від менш улюблених типів до більш віддається перевага. Використання декількох параметрів q, дозволяє клієнту повідомити сервер відносну ступінь переваги для того чи іншого медіа-типу.
За замовчуванням q приймає значення 1. Крім того, від медіа-типу він відокремлюється крапкою з комою.
Приклад заголовка типу Accept:
Accept: audio / *; q = 0.2, audio / basic або реальний нинішній:
В даному заголовку першим йде тип audio / * що включає в себе всі музичні документи і характеризується коефіцієнтом переваги 0.2. Через кому зазначений тип audio / basic, для якого коефіцієнт переваги не вказано і приймає значення за замовчуванням рівне одиниці. Цитуючи RFС2616 даний заголовок можна інтерпретувати в такий спосіб: "Я віддаю перевагу тип audio / basic, але мені можна також надсилати документи будь-якого іншого audio-типу, якщо вони будуть доступні, після зниження коефіцієнта переваги більш ніж на 80%".
Приклад може бути більш складним. Accept: text / plain; q = 0.5, text / html,
text / x-dvi; q = 0.8, text / x-c
Слід враховувати, що елемент $ _SERVER [ 'HTTP_ACCEPT'] містить таку саму інформацію, але без початкового заголовка Accept.
Цей заголовок інтерпретується наступним чином: Типи документів text / html і text / xc є переважними, але якщо вони недоступні, тоді клієнт відсилає даний запит, віддасть перевагу text / x-dvi, а, якщо і його немає, то він може прийняти тип text / plain.
$ _SERVER [ 'HTTP_ACCEPT_LANGUAGE']
В елементі $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] описуються переваги клієнта щодо мови. Дана інформація витягується з HTTP-заголовка Accept-Language, який надсилає клієнт сервера. Можна навести такий приклад:
Accept-Language: ru, en; q = 0.7
Який можна інтерпретувати в такий спосіб: клієнт надає перевагу українську мову, але в разі його відсутності згоден приймати документи англійською. Елемент $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] буде містити таку саму інформацію, але без заголовка Accept-Language:
Вміст елемента $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] можна використовувати для визначення національної приналежність відвідувачів. Однак результати будуть приблизними, так як багато користувачів використовують англійські варіанти браузерів, які будуть сповіщати сервер про те, що відвідувач воліє лише одну мову - англійську.
$ _SERVER [ 'HTTP_HOST']
$ _SERVER [ 'HTTP_REFERER']
сторінка index.php
сторінка page.php
А на цю сторінку ви перейшли з:
$ _SERVER [ 'HTTP_USER_AGENT']
Елемент $ _SERVER [ 'HTTP_USER_AGENT'] містить інформацію про тип і версії браузера та операційної системи відвідувача.
$ _SERVER [ 'REMOTE_ADDR']
Витяг змінної оточення HTTP_X_FORWARDED_FOR
$ _SERVER [ 'SCRIPT_FILENAME']
В елемент $ _SERVER [ 'SCRIPT_FILENAME'] поміщається абсолютний шлях до файлу від кореня диска. Так, якщо сервер працює під управлінням операційної системи Windows, то такий шлях може виглядати наступним чином "d: main estindex.php", тобто шлях вказується від диска, в UNIX-подібної операційної системи шлях вказується від кореневої директорії /, наприклад "/var/share/www/test/index.php".
$ _SERVER [ 'SERVER_NAME']
В елемент $ _SERVER [ 'SERVER_NAME'] поміщається ім'я сервера, як правило, збігається з доменним ім'ям сайту, розташованого на ньому. наприклад,
Використання елементів масиву $ _SERVER
$ _SERVER [ 'REQUEST_METHOD']
В елемент $ _SERVER [ 'REQUEST_METHOD'] поміщається метод запиту, який застосовується для виклику скрипта: GET або POST.