Oc-windows.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php server request uri

$_SERVER — Информация о сервере и среде исполнения

$HTTP_SERVER_VARS [удалено]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SERVER — $HTTP_SERVER_VARS [удалено] — Информация о сервере и среде исполнения

Описание

Переменная $_SERVER — это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь. Тем не менее, многие эти переменные присутствуют в » спецификации CGI/1.1, так что вы можете их ожидать их реализации и в конкретном веб-сервере.

Переменная $HTTP_SERVER_VARS содержит ту же начальную информацию, но она не суперглобальная. (Заметьте, что $HTTP_SERVER_VARS и $_SERVER являются разными переменными, так что PHP обрабатывает их соответственно). Также учтите, что «длинные массивы» были удалены в версии PHP 5.4.0, поэтому $HTTP_SERVER_VARS больше не существует.

Индексы

Вы можете найти (а можете и не найти) любой из следующих элементов в массиве $_SERVER . Заметьте, что немногие элементы, если вообще такие найдутся, будут доступны (или действительно будут иметь значение), если PHP запущен в командной строке.

‘ PHP_SELF ‘ Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER[‘PHP_SELF’] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php . Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключенного) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта, начиная с PHP 4.3.0. Раньше она была недоступна. ‘argv’ Массив аргументов, переданных скрипту. Когда скрипт запущен в командой строке, это дает C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса. ‘argc’ Содержит количество параметров, переданных скрипту (если запуск произведен в командной строке). ‘ GATEWAY_INTERFACE ‘ Содержит используемую сервером версию спецификации CGI; к примеру’CGI/1.1‘. ‘ SERVER_ADDR ‘ IP адрес сервера, на котором выполняется текущий скрипт. ‘ SERVER_NAME ‘ Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста. ‘ SERVER_SOFTWARE ‘ Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос. ‘ SERVER_PROTOCOL ‘ Имя и версия информационного протокола, через который была запрошена страница; к примеру ‘HTTP/1.0‘; ‘ REQUEST_METHOD ‘ Какой метод был использован для запроса страницы; к примеру ‘GET‘, ‘HEAD‘, ‘POST‘, ‘PUT‘.

PHP скрипт завершается после посылки заголовков (то есть после того, как осуществляет любой вывод без буферизации вывода), если запрос был осуществлен методом HEAD.

Замечание: Обратите внимание, что при использовании ISAPI с IIS значение будет off, если запрос не был произведен через протокол HTTPS.

Замечание: Ваш веб-сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache вам необходимо присутствие директивы HostnameLookups On в файле httpd.conf , чтобы эта переменная создавалась. См. также gethostbyaddr() .

Абсолютный путь к скрипту, который в данный момент исполняется.

Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php , переменная $_SERVER[‘SCRIPT_FILENAME’] будет содержать относительный путь, указанный пользователем.

‘ SERVER_ADMIN ‘ Эта переменная получает свое значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определенное для данного виртуального хоста. ‘ SERVER_PORT ‘ Порт на компьютере сервера, используемый веб-сервером для соединения. Для установок по умолчанию, значение будет ‘80‘; используя SLL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.

Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.

Список изменений

ВерсияОписание
5.4.0Массив $HTTP_SERVER_VARS больше не доступен в связи с удалением «длинных массивов».
5.3.0Директива register_long_arrays, которая приводила к заполнению $HTTP_SERVER_VARS помечена как устаревшая.
4.1.0Введена переменная $_SERVER вместо старой $HTTP_SERVER_VARS .

Примеры

Пример #1 Пример использования $_SERVER

Результатом выполнения данного примера будет что-то подобное:

Примечания

Это ‘суперглобальная’ или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

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

В массив $_SERVER PHP-интерпретатор помещает переменные, полученные от сервера. Без данных переменных сложно организовать полноценную поддержку Web-приложений. Ниже приводится описание наиболее важных элементов суперглобального массива $_SERVER.

Замечание

Просмотреть полный список элементов массива $_SERVER можно либо при помощи функции print_r(), которая распечатывает дамп массива либо при помощи функции phpinfo(), которая выводит информацию о PHP-интерпретаторе.

$_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/x-c являются предпочтительными, но если они недоступны, тогда клиент отсылающий данный запрос, предпочтёт 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_HOST’] содержится имя сервера, которое, как правило, совпадает с доменным именем сайта, расположенного на сервере. Как правило, имя, указанное в данном параметре совпадает с именем $_SERVER[‘SERVER_NAME’]. В параметре приводится лишь доменное имя без названия протокола (http://), т.е.

$_SERVER[‘HTTP_REFERER‘]

В элементе $_SERVER[‘HTTP_REFERER’] приводится адрес страницы, с которой посетитель пришёл на данную страницу. Переход должен осуществляться по ссылке. Создадим две страницы index.php и page.php.

Страница index.php

Страница page.php будет аналогичного содержания, но ссылка будет указывать на страницу index.php.

Страница page.php

При переходе с одной страницы на другую, под ссылкой будет выводится адрес страницы, с которой был осуществлён переход.

А на эту страницу вы перешли с:

$_SERVER[‘HTTP_USER_AGENT‘]

Элемент $_SERVER[‘HTTP_USER_AGENT’] содержит информацию о типе и версии браузера и операционной системы посетителя.

Вот типичное содержание этой строки: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Наличие подстроки «MSIE 6.0» говорит о том, что посетитель просматривает страницу при помощи Internet Explorer версии 6.0. Строка «Windows NT 5.1» сообщает, что в качестве операционной системы используется Windows XP.

Замечание

Для Windows 2000 элемент $_SERVER[‘HTTP_USER_AGENT’] выглядит следующим образом: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)’) , в то время как для Windows XP — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Если посетитель воспользуется браузером Opera, то содержание $_SERVER[‘HTTP_USER_AGENT’] может выглядеть следующим образом: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98) Opera 6.04 [ru] Подстрока «MSIE 6.0» здесь так же присутствует, сообщая, что браузер Opera является совместимым с браузером Internet Explorer и использует те же динамические библиотеки Windows. Поэтому, при анализе строки, возвращаемой браузером, следует иметь в виду, что к Internet Explorer относится строка, содержащая подстроку «MSIE 6.0» и не содержащая подстроки «Opera». Кроме того, из данной строки можно заключить, что пользователь использует операционную систему Windows 98.

Замечание

Пользовательский агент браузера Firefox может выглядеть следующим образом Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5

При использовании браузера Netscape, содержание элемент $_SERVER[‘HTTP_USER_AGENT’] может выглядеть следующим образом: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 Принадлежность к этому браузеру можно определить по наличию подстроки «Netscape». Кроме того, можно узнать, что посетитель выходит в Интернет, используя операционную версию Linux, с ядром, оптимизированным под Pentium IV, находясь в графической оболочке X-Window. Этот механизм удобно использовать для сбора статистической информации, которая позволяет дизайнерам оптимизировать страницы под наиболее распространенные браузеры.

$_SERVER[‘REMOTE_ADDR‘]

В элемент $_SERVER[‘REMOTE_ADDR’] помещается IP-адрес клиента. При тестировании на локальной машине — этот адрес будет равен 127.0.0.1. Однако при тестировании в сети переменная вернёт IP-адрес клиента или последнего прокси-сервера через который клиент попал на сервер. Если клиент использует прокси-сервер узнать его IP-адрес можно при помощи переменной окружения HTTP_X_FORWARDED_FOR, значение которой можно получить при помощи функции getenv().

Замечание

Прокси-сервера являются специальными промежуточными серверами, предоставляющими специальный вид услуг: сжатие трафика, кодирование данных, адаптация под мобильные устройства и т.п. Среди множества прокси-серверов различают так называемые анонимные прокси-сервера, которые позволяют скрывать истинный IP-адрес клиента, такие сервера не возвращают переменной окружения HTTP_X_FORWARDED_FOR.

Извлечение переменной окружения 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_NAME’] часто совпадает с содержимым элемента $_SERVER[‘HTTP_HOST’]. Помимо имени сервера суперглобальный массив $_SERVER позволяет выяснить ещё ряд параметров сервера, например IP-адрес сервера, прослушиваемый порт, какой Web-сервер установлен и версию HTTP протокола. Эта информация помещается в элементы $_SERVER[‘SERVER_ADDR’], $_SERVER[‘SERVER_PORT’], $_SERVER[‘SERVER_SOFTWARE’] и $_SERVER[‘SERVER_PROTOCOL’], соответственно. Ниже приводится пример с использованием данных элементов.

Использование элементов массива $_SERVER

$_SERVER[‘REQUEST_METHOD‘]

В элемент $_SERVER[‘REQUEST_METHOD’] помещается метод запроса, который применяется для вызова скрипта: GET или POST.

$_SERVER[‘QUERY_STRING‘]

В элемент $_SERVER[‘QUERY_STRING’] заносятся параметры, переданные скрипту, если строка запроса представляет собой адрес

Глобальный массив $_SERVER в PHP

Те, кто более-менее серьёзно изучал PHP знают, что существует один очень полезный глобальный массив в PHP, который называется $_SERVER. И вот хотелось бы в этой статье разобрать самые популярные ключи и их значения в этом массиве, так как их знание просто обязательно даже для начинающего PHP-программиста.

Прежде чем приступить к глобальному массиву $_SERVER в PHP, сразу сделаю небольшую подсказку. Есть замечательная функция, встроенная в PHP, которая называется phpinfo(). Давайте сразу приведу пример её использования:

В результате выполнения этого просто скрипта Вы увидите огромную таблицу с различными настройками интерпритатора PHP, в том числе, ближе к концу будет таблица значений глобального массива $_SERVER. Там будут перечислены все ключи и все соответствующие им значения. Чем это может Вам помочь? А тем, что если Вам потребуется то или иное значение, и Вы забудете, как называется ключ, то с помощью функции phpinfo() Вы можете всегда вспомнить его название. В общем, Вы выполните этот скрипт и сразу меня поймёте.

А теперь давайте перейдём к самым популярным ключам массива $_SERVER:

  • HTTP_USER_AGENT — этот ключ позволяет узнать характеристику клиента. В большинстве случаев, это, безусловно, браузер, однако, не всегда. И опять же, если браузер, то какой, вот в этой переменной об этом можно и узнать.
  • HTTP_REFERER — содержит абсолютный путь к тому файлу (PHP-скрипт, HTML-страница), с которого перешли на данный скрипт. Грубо говоря, откуда пришёл клиент.
  • SERVER_ADDRIP-адрес сервера.
  • REMOTE_ADDRIP-адрес клиента.
  • DOCUMENT_ROOT — физический путь к корневой директории сайта. Это опция задаётся через конфигурационный файл сервера Apache.
  • SCRIPT_FILENAME — физический путь к вызванному скрипту.
  • QUERY_STRING — весьма полезное значение, которое позволяет получить строку с запросом, а дальше можно заниматься парсингом этой строки.
  • REQUEST_URI — ещё более полезное значение, которое содержит не только сам запрос, но и вместе с ним относительный путь к вызываемому скрипту от корня. Это очень часто используется для удаления дублирования с index.php, то есть когда у нас такой URL: «http://mysite.ru/index.php» и «http://mysite.ru/» ведут на одну страницу, а URLы разные, следовательно, дублирование, что плохо скажется на поисковой оптимизации. И вот с помощью REQUEST_URI мы можем определить: с index.php или нет был вызван скрипт. И можем сделать редирект с index.php (если он присутствовал в REQUEST_URI) на без index.php. В результате, при передаче такого запроса: «http://mysite.ru/index.php? . То есть мы избавились от дублирования, удалив из URL этот index.php.
  • SCRIPT_NAME — относительный путь к вызываемому скрипту.

Пожалуй, это все элементы глобального массива $_SERVER в PHP, которые используются регулярно. Их надо знать и уметь использовать, когда это необходимо.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 13 ):

    Если ввести в поисковое поле $_SERVER то он не ищет статью про глобальный массив, напишите статью как делать поиск с такими запросами

    Также, как и со всеми, только надо очень аккуратно использовать функцию quotemeta(), которую использовать только для запросов, но саму поисковую строку не модифицировать через неё.

    Михаил, не могли бы Вы поподробней описать про избавление от index.php? А еще лучше готовый код выложить?

    Хорошо, напишу статью. Выйдет она примерно 24-го апреля.

    Спасибо. Буду ждать.

    $query2 = «SELECT «.TB_PREFIX.»wdata. ; нашел вот такой запрос и голова закружилась)) подскажите пожалуйста, что сдесь к чему — имею ввиду join — где о нем хорошо, понятно написано? и почему там написано AS сначала? (с основами SQL знаком, несложнblе запросbl составлять умею) спасибо!

    http://myrusakov.ru/sql-join.html А as — это объявление переменной: слева её значение, а справа её имя.

    как с помощью php подгрузить контент ЧЕРЕЗ НЕКОТОРОЕ ВРЕМЯ? Мне нужно спрятать баннер от поисковиков!

    Задержку можно сделать только на javascript. Либо делать автообновления, а время смотреть по сессии или кукам.

    Здравствуйте, Михаил! Подскажите пожалуйста как узнать текущий адрес страницы. Читал что можно через REQUEST_URI, только ничего не получается. Пишу админку к сайту, и мне нужно в зависимости от адреса страницы выводить блок с формой добавления материала (он разный для каждого раздела). Форма у меня выводится, если хотя бы один материал добавлен в раздел (непосредственно через phpMyAdmin). Если материала нет, то не выводится, а надо бы. Спасибо заранее!

    В $_SERVER[«REQUEST_URI»] действительно содержатся адрес страницы на сайте, причём вместе с GET-запросом к этой странице, если он есть.

    Здравствуйте Михаил, хотел бы узнать по подробнее на счет ключа массива $_SERVER[‘QUERY_STRING’];. Не могли бы вы поподробнее расписать как ею пользоваться

    Какие факторы влияют на HTTP_REFERER? А то у меня всегда он выводит ссылку на главную страницу, а не предыдущую (переход по ссылке, естественно, делаю). Что может влиять на HTTP_REFERER?

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

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

    Суперглобальный массив $_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’];

    Такой код может выдать такой ответ(только то, что в кавычках): Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0 . Собирая данную информацию, можно оптимизировать свой сайт под наиболее востребованные браузеры.

    3. $_SERVER[‘HTTP_HOST’] — показывает имя сервера, которое совпадает с доменом без http и слешей, только имя.

    Такой код может выдать такой ответ: saitsozdanie.ru — то есть как видим, что http:// опускается

    $_SERVER[‘SERVER_NAME’] — зачастую показывает практически тоже самое;

    4. $_SERVER[‘HTTP_REFERER’] — используется для указания информации «откуда человек пришел» — а, именно, с какой страницы.

    Такой код может выдать такой ответ: http://yandex.ru/clck/. и так далее, если вы перешли на мой сайт к примеру с яндекса из поиска. Очень полезная функция получается для оценки трафика с поисковиков.

    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 — если я проверяю свой сайта на локальном компьютере. На хостинге результат, естественно, будет другой, но для примера думаю красноречиво!

    8. $_SERVER[‘REMOTE_ADDR’] — используется для вычисления ip адреса клиента.

    Такой код может показать такое: 127.0.0.1 это на локалке. В интернете же мы получим айпишник клиента. Если к нам на сайте человек зашел через прокси, то пользуем переменную окружения HTTP_X_FORWARDED_FOR (ее значения можно определить с помощью функции getenv() — кроме анонимных прокси, echo @getenv(HTTP_X_FORWARDED_FOR); ).

    9. $_SERVER[‘REQUEST_URI’] — показывает часть адреса или ссылки. К примеру, если у нас есть — http://saitsozdanie.ru/php/superglobalnyj-massiv-server-podrobno.html то элемент $_SERVER[‘REQUEST_URI’] содержит это «/php/superglobalnyj-massiv-server-podrobno.html».

    10. Что еще из полезного мы можем узнать из этого глобального массива:

    $_SERVER[‘SERVER_PORT’] — прослушиваемый порт;

    $_SERVER’SERVER_ADDR’] — ip адрес сервера;

    $_SERVER[‘SERVER_PROTOCOL’] — версия протокола;

    Нетрудно догадаться и начать конструировать собственные конструкторы, которые, в принципе, уже давно созданы:

    echo «http://».$_SERVER[‘SERVER_NAME’].$_SERVER[‘REQUEST_URI’]; — и получить полный путь например к скрипту относительно сервера.

    11. $_SERVER[‘QUERY_STRING’] — позволяет получить часть ссылки после знака вопроса, то есть параметры, переданные скрипту.

    12. $_SERVER[‘REQUEST_METHOD’] — примените его и узнаете, какой метод запроса был использован GET или POST.

    13. $_SERVER[‘PHP_SELF’] — для вычисления адреса скрипта относительно сервера. К примеру имеем строку запроса — http://sait.ru/byume/index.php? .

    Похожее будет и с $_SERVER[‘SCRIPT_FILENAME’] — этот элемент показывает абсолютный путь до файла(скрипта), только уже относительно сервера(может быть такое /var/www/sait.ru/index.php).

    Более новые статьи:

    • В PHP часто приходится иметь дело с созданием файла. все очень просто нет файла на диске, код прогнался и файл появился, далее можно считать этот фай …

    «>php создание файла, чтение и запись — 22/02/2016 11:54
    Конструкция switch — переключатель на php бывает в некоторых случаях незаменима, и увеличивает быстродействие. …

    «>switch тонкости — 15/02/2016 13:10
    На сайте часто могут возникать ошибки PHP, в этой статье будим их разбирать.

    Читать еще:  Web сервер php
    Ссылка на основную публикацию
    Adblock
    detector
    ×
    ×