К содержимому

Документация

PHP SDK: Ссылки и параметры URL

Методы доступны через $ctx->url(). Они работают со строками адресов. Полученный адрес нужно отдельно передать HTTP-клиенту или браузеру.

Общий справочник SDK

Методы

absolutize

absolutize(string $base, string $relative): string

Достроить относительную ссылку по известному адресу страницы.

$url = $ctx->url()->absolutize('https://shop.example.invalid/catalog/', '../product/1');

Результат и особенности. Возвращает https://shop.example.invalid/product/1. Для ссылок из HTML удобнее Node::abs().

param

param(string $url, string $name): ?string

Прочитать строковый query-параметр адреса.

$page = $ctx->url()->param('https://shop.example.invalid/?page=3', 'page');

Результат и особенности. Возвращает строку «3» или null. Массивные query-параметры не возвращаются.

withParam

withParam(string $url, string $name, string|int $value): string

Добавить или заменить один query-параметр.

$url = $ctx->url()->withParam('https://shop.example.invalid/catalog?sort=price', 'page', 2);

Результат и особенности. Возвращает URL с sort=price&page=2. Используйте полный URL. Фрагмент после # текущая реализация не сохраняет.

page

page(string $template, int $page): string

Подставить номер вместо {page} в шаблоне.

$url = $ctx->url()->page('https://shop.example.invalid/?PAGEN_1={page}', 4);

Результат и особенности. Возвращает адрес с PAGEN_1=4. Число страниц метод не определяет и запросов не выполняет.