Суперглобальный массив $_SERVER

Суперглобальный массив $_SERVER

Начиная с версии PHP 4 и выше, появилось такое понятие как «суперглобальные» массивы. Почти все массивы начинаются с «$_» (кроме $GLOBALS).

Сегодня мы поговорим об одном из наиболее загадочных и неоднозначных массивах — $_SERVER. Наверняка, кроме него, вы еще встречали: $GLOBALS, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SESSION (вполне может быть что уже существуют и другие).

Массив $_SERVER, как и видно из названия, содержит в себе данные о текущем сервере.
Давайте разберем подробней, какие данные мы можем узнать, и как с этим вообще можно работать.

Как узнать что находится в массиве $_SERVER?

Как и любой другой массив в PHP, мы можем узнать список его элементов через функцию print_r. То есть, вам нужно на тестовой странице написать:

Скорей всего, у вас будет какая-то каша в 1 строку, и чтобы понять, что это такое, можно:

  • чуть дописать наш код
  • нажать правую кнопку мыши на наших данных и выбрать «Исходный код выделенного фрагмента».

Вам выбирать 🙂

Еще встречается и такой вариант:

Как можно использовать массив $_SERVER в своих скриптах?

Не будем разбирать все элементы массива, расскажу, с чем конкретно сталкивался я в своей практике. На самом деле, все ограничивается лишь вашей фантазией и поставленной задачей — причем, как правило, задачу можно решить несколькими способами.
$_SERVER[‘HTTP_REFERER’] — в этом элементе массива содержится информация с какой страницы пользователь перешел на текущую. Ну, например, вам нужно скрыть информацию на странице только в том случае, если переход был со страницы /opt/.

где http://mysite.com — это URL вашего сайта.
Замечу, частенько бывали случаи, когда изменить данные на стороне сервера (на PHP) не всегда получалось. Тут на помощь приходил javascript — и хотя это выглядело как костыль, но на практике это работало. Приведу пример на jQuery:

$_SERVER[‘REDIRECT_URL’] — элемент содержит данные о текущей странице (без параметров и данных о домене). В принципе это очень удобно — вы можете выводить информацию только на каком-то конкретном разделе вашего сайта, особенно, если не получается вывести необходимую информацию иначе.
Кстати, если вы заметили, есть так же $_SERVER[‘REQUEST_URI’], но в нем уже присутствуют параметры.
Параметры в URL можно найти в $_SERVER[‘QUERY_STRING’].

Есть еще как минимум один способ как можно применять эти данные: например, проверять находиться ли пользователь на конкретном разделе. Сделать это можно простой проверкой на первое вхождение подстроки текущего урла 🙂

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.com/dmitriy/.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Один комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *