Суперглобальний масив $ _server докладно, php

Суперглобальний масив $ _SERVER - це те на чому варто зупиниться і вивчити, якщо ви встали на шлях програмування. Він вам може показати найважливішу інформацію.







У масиві $ _SERVER зберігаються важливі змінні, які поміщаються в нього php-інтерпритатором. Багато сервісів часто використовують цей суперглобальний масив для своєї роботи або надаючи інформацію своїм клієнтам. Без нього складно здійснити повноцінну підтримку web-додатків.

Для початку потрібно сказати, що подивитися всі змінні $ _SERVER ви можете за допомогою функції print_r () через phpinfo ();

Пояснення на прикладах

1. Багато хто запитує, для чого потрібен - $ _SERVER [ 'SERVER_SOFTWARE'] - в інтернеті практично не знайти, а краще дивіться приклад:

echo "Web-сервер -". $ _ SERVER [ 'SERVER_SOFTWARE']. ";

Такий код може видати таку відповідь: Web-сервер - Apache. Тобто ви зрозуміли для чого він потрібен, їдемо далі.

2. $ _SERVER [ 'HTTP_USER_AGENT'] - необхідний для виведення інформації про операційну систему клієнта і версії і назві браузера:

echo "Визначення версії браузера і операційки клієнта -". $ _ SERVER [ 'HTTP_USER_AGENT'];

3. $ _SERVER [ 'HTTP_HOST'] - показує ім'я сервера, яке збігається з доменом без http і слешів, тільки ім'я.

$ _SERVER [ 'SERVER_NAME'] - найчастіше показує практично те ж саме;

4. $ _SERVER [ 'HTTP_REFERER'] - використовується для вказівки інформації "звідки людина прийшла" - а, саме, з якої сторінки.

5. Використання $ _SERVER [ 'HTTP_ACCEPT'] - покаже вам переваги клієнта щодо типу документа. Вказівка ​​заголовка Accept дозволяє уточнити бажаний медіа-тип.







Такий код може видати таку відповідь: text / html, application / xhtml + xml, application / xml; q = 0.9, * / *; q = 0.8.

Де q - це відносний коефіцієнт переваги (може приймати значення від 0 до 1, де 1 - означає, що більш кращий). Як бачимо типи відокремлюються між собою комами, а між типом і його коефіцієнтом ставиться крапка з комою - application / xml; q = 0.9, * / *; q = 0.8 - де / - все типи. А ось там де немає значення q, він по-дефолту дорівнює 1;

6. $ _SERVER [ 'HTTP_ACCEPT_LANGUAGE'] - використовують для обчислення мовного переваги клієнта (тобто можливість використання для національної приналежності). Витяг йде з HTTP-заголовка Accept-Language:

Такий код може видати таку відповідь: ru-RU, ru; q = 0.8, en-US; q = 0.5, en; q = 0.3. Це мої значення, у вас будуть інші. Є залежність від браузера - англомовні версії будуть показувати в пріоритеті - English.

7. $ _SERVER [ 'DOCUMENT_ROOT'] - застосовується для обчислення кореневій директорії сайту або папки (місце, де лежить сайт, основна папка):

Такий код може показати таке: C: /Users/Sergio/OpenServer/domains/saitsozdanie.ru - якщо я перевіряю свій сайту на локальному комп'ютері. На хостингу результат, природно, буде інший, але для прикладу думаю красномовно!

Такий код може показати таке: 127.0.0.1 це на локалке. В інтернеті ж ми отримаємо айпішник клієнта. Якщо до нас на сайті людина зайшла через проксі, то користуємося змінну оточення HTTP_X_FORWARDED_FOR (її значення можна визначити за допомогою функції getenv () - крім анонімних проксі, echo @getenv (HTTP_X_FORWARDED_FOR);).

10. Що ще з корисного ми можемо дізнатися з цього глобального масиву:

$ _SERVER [ 'SERVER_PORT'] - прослуховується порт;

$ _SERVER [ 'SERVER_PROTOCOL'] - версія протоколу;

Неважко здогадатися і почати конструювати власні конструктори, які, в принципі, вже давно створені:

11. $ _SERVER [ 'QUERY_STRING'] - дозволяє отримати частину посилання після знака питання, тобто параметри, передані скрипту.

12. $ _SERVER [ 'REQUEST_METHOD'] - застосуєте його і дізнаєтеся, який метод запиту був використаний GET або POST.

Схоже буде і з $ _SERVER [ 'SCRIPT_FILENAME'] - цей елемент показує абсолютний шлях до файлу (скрипта), тільки вже відносно сервера (може бути таке /var/www/sait.ru/index.php).







Схожі статті