Блог Горошко Андрея 1C-Битрикс Манипуляции с URL в D7: Класс Bitrix\Main\Web\Uri (добавление, удаление параметров, парсинг)

Манипуляции с URL в D7: Класс Bitrix\Main\Web\Uri (добавление, удаление параметров, парсинг)

Работа с URL — рутинная задача: добавить GET-параметр, удалить «мусор», получить домен. В старом ядре использовались функции вроде $APPLICATION->GetCurPageParam.

В D7 появился специализированный класс \Bitrix\Main\Web\Uri, который делает эту работу объектно-ориентированной и безопасной.

1. Создание объекта Uri

use Bitrix\Main\Web\Uri;
use Bitrix\Main\Application;

// Из произвольной строки
$uri = new Uri("https://site.ru/catalog/shoes/?size=42&color=red#top");

// Из текущего запроса (самый частый кейс)
$request = Application::getInstance()->getContext()->getRequest();
$currentUri = new Uri($request->getRequestUri());

2. Добавление и изменение параметров (addParams)

Метод добавляет новые параметры или перезаписывает существующие.

// Добавляем сортировку и удаляем старую пагинацию (если была)
$currentUri->addParams([
    'sort' => 'price',
    'order' => 'asc',
    'page' => null // null не удаляет параметр, а делает его пустым (page=). Для удаления см. ниже.
]);

echo $currentUri->getUri(); // /catalog/shoes/?size=42&color=red&sort=price&order=asc

3. Удаление параметров (deleteParams)

$currentUri->deleteParams(['size', 'color']);
echo $currentUri->getUri();

4. Получение частей URL

Класс автоматически парсит строку и дает доступ к компонентам.

echo $uri->getScheme();   // https
echo $uri->getHost();     // site.ru
echo $uri->getPath();     // /catalog/shoes/
echo $uri->getQuery();    // size=42&color=red
echo $uri->getFragment(); // top

5. Работа с системными параметрами

Часто нужно очистить URL от служебных параметров Битрикса (clear_cache, login, sessid и т.д.).

use Bitrix\Main\HttpRequest;

// Удаляем все системные параметры
$uri->deleteParams(HttpRequest::getSystemParameters());


Вывод:
Класс Uri — это единственный правильный способ программно изменять ссылки в D7.

Он корректно обрабатывает кодирование символов (urlencode) и гарантирует валидность итогового адреса.

Bitrix\Main\Web\Uri, работа с url битрикс, добавить параметры в url, удалить параметры из url, парсинг url, getQuery, addParams, deleteParams.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

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

Related Post

Интеграция интернет-магазина на Битрикс с сервисом агрегации доставок CheckboxИнтеграция интернет-магазина на Битрикс с сервисом агрегации доставок Checkbox

Бесшовная и отказоустойчивая интеграция сайта на 1С-Битрикс с внешними учетными системами, банками, службами доставки и маркетплейсами — основа масштабирования современного бизнеса. Услуга «Интеграция интернет-магазина на Битрикс с сервисом агрегации доставок

Изменить платежную систему sale.paysystem.updateИзменить платежную систему sale.paysystem.update

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Изменить платежную систему sale.paysystem.update». Вы узнаете экспертные методики работы с sale.paysystem.update и научитесь

Получить значения всех полей торгового каталога catalog.catalog.getПолучить значения всех полей торгового каталога catalog.catalog.get

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Получить значения всех полей торгового каталога catalog.catalog.get». Вы узнаете экспертные методики работы с