php

Получить полный URL-адрес в PHP

Получить полный URL-адрес в PHP
В PHP могут использоваться два типа глобальных переменных: суперглобальная переменная и пользовательская переменная. $ _SERVER - это суперглобальная переменная массива, которая используется для получения полного пути к текущей странице. Протокол (HTTP или HTTPS) URL-адреса также необходим для получения полного URL-адреса страницы. Если $ _SERVER ['HTTPS'] возвращается 'на', тогда HTTPS будет использоваться с URL-адресом, в противном случае, HTTP будет использовано. Как получить полный URL-адрес текущей страницы с помощью $ _SERVER массив был объяснен в этом руководстве.

Необходимые переменные

Следующие суперглобальные переменные необходимы для определения URL-адреса текущей страницы.

Суперглобальные переменные Цели
$ _SERVER ['HTTPS'] Он возвращается на если протокол HTTPS используется в URL-адресе текущей страницы.
$ _SERVER ['HTTP_HOST'] Возвращает имя сервера текущей страницы.
$ _SERVER ['REQUEST_URI'] Возвращает запрошенное имя ресурса.
$ _SERVER ['SERVER_PORT'] Возвращает номер порта сервера.
$ _SERVER ['QUERY_STRING'] Он возвращает значение строки запроса, если оно существует в URL-адресе текущей страницы.

Пример 1. Отображение URL-адреса текущей страницы с помощью условного оператора

В следующем примере показано, как можно использовать условный оператор для получения протокола, используемого в URL-адресе текущей страницы. Создайте файл PHP со следующим скриптом.

Значение $ _SERVER ['HTTP_HOST'] используется для получения доменного имени текущего URL. Значение $ _SERVER ['REQUEST_URI'] используется для получения имени запрошенного ресурса. isset () функция используется, чтобы проверить, установлен ли $ _SERVER ['HTTPS'] или нет, и если он установлен, то проверьте значение $ _SERVER ['HTTPS'], является ли оно на или нет. Затем значения этих трех переменных объединяются с //: для получения полного URL-адреса текущей страницы.

// Считываем доменное имя текущей страницы
$ domain = $ _SERVER ['HTTP_HOST'];
// Читаем запрошенный ресурс
$ resource = $ _SERVER ['REQUEST_URI'];
// Узнаем протокол текущего url
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ протокол = "https";
еще
$ протокол = "http";
// Объединяем все части, чтобы получить полный URL-адрес
$ url = $ протокол.": //".$ домен.$ resource;
// Распечатываем URL-адрес текущей страницы
эхо "

URL-адрес текущего
страница:

". $ url;?>

Выход:

Следующий вывод появится после запуска скрипта с сервера. Значение $ _SERVER ['HTTPS'] не равно на для локального сервера. Таким образом, вывод показывает http протокол для текущего URL.

Пример 2: отображение URL-адреса текущей страницы с помощью тернарного оператора

В следующем примере показан способ получить полный URL-адрес текущей страницы с помощью тернарного оператора. Создайте файл PHP со следующим скриптом.

Если условие используется в предыдущем примере, чтобы узнать, какой протокол используется в URL-адресе текущей страницы. Та же задача выполняется с использованием тернарного оператора в этом скрипте. isset () функция используется, чтобы проверить, установлен ли $ _SERVER ['HTTPS'] или нет, и если значение $ _SERVER ['HTTPS'] равно на, тогда тернарный оператор вернет HTTPS, иначе он вернет HTTP. Остальные части URL-адреса извлекаются и печатаются, как в предыдущем примере.

// Узнаем протокол текущего url
$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'вкл' ? «https»: «http»);
// Считываем доменное имя текущей страницы
$ domain = $ _SERVER ['HTTP_HOST'];
// Читаем запрошенный ресурс
$ resource = $ _SERVER ['REQUEST_URI'];
// Объединяем все части, чтобы получить полный URL-адрес
$ url = $ протокол.": //".$ домен.$ resource;
// Распечатываем URL-адрес текущей страницы
эхо "

URL-адрес текущей страницы:

". $ url;
?>

Выход:

Следующий вывод появится после запуска скрипта с сервера. Значение $ _SERVER ['HTTPS'] не равно на для локального сервера. Таким образом, вывод показывает протокол HTTP для текущего URL-адреса.

Пример 3: Отображение URL-адреса текущей страницы на основе номера порта

В двух предыдущих примерах значение $ _SERVER ['HTTPS'] использовалось для определения протокола текущего URL-адреса страницы, и с URL-адресом не использовалась строка запроса. В следующем примере показано, как можно использовать переменную $ _SERVER ['SERVER_PORT'] для определения протокола и получения полного URL-адреса со строкой запроса. Создайте файл PHP со следующим скриптом.

Здесь несколько логических условий и тернарный оператор используются для определения протокола. Если значение $ _SERVER ['HTTPS'] пустое или установлено на выключенный, затем он проверит значение $ _SERVER ['SERVER_PORT'], чтобы узнать протокол текущего URL-адреса. Переменная $ _SERVER ['QUERY_STRING'] используется для извлечения значения строки запроса из URL-адреса.

// Узнаем протокол текущего url
$ протокол = ((!пустой ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'выкл') || $ _SERVER ['SERVER_PORT'] == 443) ? «https: //»: «http: //»;
// Считываем доменное имя текущей страницы
$ domain = $ _SERVER ['HTTP_HOST'];
// Читаем запрошенный ресурс
$ resource = $ _SERVER ['REQUEST_URI'];
// Считываем значение строки запроса
$ query = $ _SERVER ['QUERY_STRING'];
// Объединяем все части, чтобы получить полный URL-адрес
$ url = $ протокол.$ домен.$ resource;
// Распечатываем URL-адрес текущей страницы
эхо "

Полный URL-адрес текущей страницы:

". $ url;
// Распечатываем часть строки запроса
эхо "

Строка запроса:

". $ query;
?>

Выход:

Следующий вывод появится после выполнения вышеуказанного скрипта с сервера без какой-либо строки запроса. В URL-адресе нет строки запроса. Таким образом, на выходе отображается пустая строка запроса.

Следующий вывод появится после выполнения вышеуказанного скрипта с сервера со строкой запроса. Следующий вывод показывает URL-адрес со строкой запроса и строкой запроса отдельно.

Заключение

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

Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...
Как записать и транслировать игровую сессию в Linux
В прошлом игры считались только хобби, но со временем игровая индустрия увидела огромный рост с точки зрения технологий и количества игроков. Игровая ...
Лучшие игры с отслеживанием рук
Oculus Quest недавно представил отличную идею отслеживания рук без контроллеров. С постоянно растущим числом игр и действий, которые осуществляются фо...