WSUrl


WSUrl разбирает переданный URL и предоставляет доступ к его частям: схеме, хосту, пути, query-строке, query-параметрам и сегментам пути.

Поддерживает

  • получение хоста;
  • получение схемы URL;
  • получение полного хоста со схемой;
  • получение сформированного URL;
  • получение пути URL;
  • получение URL без query-строки;
  • получение query-строки;
  • получение query-параметра по ключу;
  • получение части пути по индексу;
  • получение типа записи из пути;
  • получение последнего сегмента пути.

Быстрый старт

php
$url = new WSUrl('https://example.com/blog/post-name?foo=bar');

$host = $url->host();
$scheme = $url->scheme();
$path = $url->path();
$parameter = $url->getParameter('foo');

Инициализация

__construct($url)

Создаёт объект WSUrl на основе переданного URL.

Параметры:

Параметр Тип Описание
$url mixed URL, который передаётся в urldecode() и разбирается через parse_url().

Пример:

php
$url = new WSUrl('https://example.com/catalog/item?sort=asc');

Передавайте абсолютный URL со схемой, хостом и путём. Неполный или некорректный URL может вызвать предупреждение или ошибку PHP.

Публичные методы

host()

Возвращает хост URL.

Возвращает:

Тип Описание
mixed Хост URL.

Пример:

php
$host = $url->host();

scheme()

Возвращает схему URL.

Возвращает:

Тип Описание
mixed Схема URL.

Пример:

php
$scheme = $url->scheme();

fullHost()

Возвращает полный хост со схемой.

Возвращает:

Тип Описание
string Строка вида scheme://host.

Пример:

php
$fullHost = $url->fullHost();

url()

Возвращает URL, сформированный классом.

Возвращает:

Тип Описание
string URL со схемой, хостом, путём и query-строкой.

Пример:

php
$currentUrl = $url->url();

path()

Возвращает путь URL.

Возвращает:

Тип Описание
string Путь URL без начального и конечного символа /.

Пример:

php
$path = $url->path();

fullPath()

Возвращает URL без query-строки.

Возвращает:

Тип Описание
string URL без query-параметров.

Пример:

php
$fullPath = $url->fullPath();

query()

Возвращает query-строку URL.

Возвращает:

Тип Описание
mixed Query-строка URL.

Пример:

php
$query = $url->query();

getParameter($key)

Возвращает query-параметр по ключу после обработки через Convert::noHTML().

Параметры:

Параметр Тип Описание
$key mixed Ключ query-параметра.

Возвращает:

Тип Описание
mixed Значение параметра.
null Если параметр отсутствует.

Пример:

php
$page = $url->getParameter('page');

getPathPart($key)

Возвращает часть пути по индексу.

Параметры:

Параметр Тип Описание
$key mixed Индекс части пути.

Возвращает:

Тип Описание
mixed Сегмент пути.
null Если индекс отсутствует.

Пример:

php
$section = $url->getPathPart(0);

getOriginalParameter($key)

Возвращает исходное значение query-параметра без дополнительной обработки.

Перед вызовом убедитесь, что параметр существует. Для отсутствующего ключа метод обращается к неопределённому элементу массива.

Параметры:

Параметр Тип Описание
$key mixed Ключ query-параметра.

Возвращает:

Тип Описание
mixed Исходное значение параметра.

Пример:

php
$value = $url->getOriginalParameter('page');

getPostType()

Возвращает путь без последнего сегмента. Значение формируется только для пути, содержащего не менее двух сегментов.

Возвращает:

Тип Описание
mixed Тип записи, сформированный из пути.

Пример:

php
$postType = $url->getPostType();

getPageUrl()

Возвращает последний сегмент пути. Значение формируется только для пути, содержащего не менее двух сегментов.

Возвращает:

Тип Описание
mixed Последний сегмент пути.

Пример:

php
$pageUrl = $url->getPageUrl();

getBaseUrl()

Возвращает путь URL.

Возвращает:

Тип Описание
string Значение пути URL.

Пример:

php
$baseUrl = $url->getBaseUrl();

Форматы данных

Query-параметры

Query-строка разбирается по символу &, затем каждый элемент разбирается по символу =.

Пример:

text
?page=10&sort=asc

После разбора:

Ключ Значение
page 10
sort asc

Части пути

Путь разбивается по символу /.

Пример:

text
blog/news/my-post

После разбора:

Индекс Значение
0 blog
1 news
2 my-post

Исключения

Класс не выбрасывает собственных исключений.

Ограничения и замечания

  • путь URL приводится к нижнему регистру;
  • query-параметры разбираются простым разделением по символам & и =;
  • метод getParameter() использует Convert::noHTML();
  • метод getOriginalParameter() возвращает значение без обработки;
  • private-методы класса не относятся к публичному API.