Уроки PHP – Как получить URL текущей страницы

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

 

 

Как получить URL текущей страницы с помощью PHP

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

С помощью этого массива вы можете получить название доменного имени, название скрипта, параметры URL или их варианты.

Теперь давайте посмотрим, как это работает. Для примера давайте возьмем следующую сложную структуру URL адреса:

http://www.sebweo.com/test/some-script.php?city=Kyiv&start=482

 

Давайте разберем этот URL на составные части:

  • http – это протокол
  • sebweo.com – это имя хоста (доменное имя).
  • test – это каталог, в котором размещен PHP скрипт
  • some-script.php – это фактическое имя PHP скрипта
  • city=Kyiv – это первый параметр URL (город) и его значение (Kyiv)
  • start=482 – это второй параметр URL (start) и его значение (482)

 

А теперь давайте попробуем создать тот же URL с помощью PHP.

 

  • Получаем протокол ссылки

Протокол URL ссылки может быть получен из переменной $_SERVER['SERVER_PROTOCOL'].

<?php
echo $_SERVER['SERVER_PROTOCOL'];
?>

 

Однако, если вы запустите этот код, вы получите значение не просто http или https, а такую строку: HTTP/1.1

 

Чтобы получить чистую строку протокола, нам нужно провести определенные манипуляции с этим значением:

<?php
$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']), 'https') === FALSE ? 'http' : 'https';
echo $protocol;
?>

 

  • Получаем имя хоста (домен)

На следующем шаге мы выясним имя хоста. Для этого используется значение массива $_SERVER['HTTP_HOST']. Вы можете использовать это так:

<?php
$hostame = $_SERVER['HTTP_HOST'];
echo $hostame;
?>

 

 

  • Получаем каталог и имя текущего PHP скрипта

Значение $_SERVER['SCRIPT_NAME'] содержит полный путь с именем фактического PHP сценария. Вы можете это использовать так:

<?php
$script = $_SERVER['SCRIPT_NAME'];
echo $script;
?>

 

 

  • Получаем параметры текущего URL

Последняя часть текущего URL-адреса содержится в значении $_SERVER['QUERY_STRING'] и вы можете его использовать так:

<?php
$params = $_SERVER['QUERY_STRING'];
echo $params;
?>

 

 

  • Получаем фактический URI (/test/some-script.php?city=Kyiv&start=482)

Если для вас не важны протокол и имя хоста (домен), а только путь, имя скрипта и параметры URL, вы можете просто использовать конструкцию $_SERVER['REQUEST_URI'] следующим образом:

<?php
$uri = $_SERVER['REQUEST_URI'];
echo $uri;
?>

 

 

Таким образом, чтобы получить полный URL текущей страницы с помощью PHP, это можно сделать так:

<?php
$protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']), 'https') === FALSE ? 'http' : 'https';
$hostame     = $_SERVER['HTTP_HOST'];
$script   = $_SERVER['SCRIPT_NAME'];
$params   = $_SERVER['QUERY_STRING'];
$currentUrl = $protocol . '://' . $hostame . $script . '?' . $params;
echo $currentUrl;
?>

 

 

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

 

This post was last modified on 20/08/2019 19:07

Последние посты

Джордж Оруэлл

Вся пропаганда войны, все крики, ложь и ненависть, исходят всегда от людей, которые на эту…

14/06/2024

Фитосвечи для поддержания здоровья женской флоры

    Фитосвечи: Поддержка Здоровья Женской Флоры Фитосвечи являются эффективным средством для улучшения функционального состояния…

11/06/2024

Тренировка груди с гантелями и скамейкой от Youtube канала

Приветствую вас, ребята! Вы когда-нибудь задумывались, как улучшить тренировку груди, используя гантели и лавку? Это…

05/06/2024

Что такое порт (компьютерный) и для чего он нужен?

Поскольку различные компьютерные приложения могут использовать различные процессы и/или службы, операционная система ПК на программном…

01/06/2024

Уроки PHP — Обработка ошибок (возможные типы ошибок)

В сегодняшнем теоретическом уроке мы рассмотрим сложный и важный вопрос в PHP — выявление и…

30/05/2024

Как создавать умные торговые кампании через Merchant Center?

Интеграция Merchant Center с Google Рекламой открывает доступ к такому эффективному типу кампаний, как Умные…

29/05/2024