Как разобрать и собрать строку запроса
Короткий ответ
parse_str() разбирает строку в массив, http_build_query() собирает обратно:
<?php
parse_str('q=php+book&page=2', $params);
echo json_encode($params), "\n";
echo http_build_query(['q' => 'php book', 'page' => 3]);Результат:
{"q":"php book","page":"2"}
q=php+book&page=3Изменить один параметр ссылки
Разберите ссылку, поменяйте значение и соберите заново:
<?php
$url = 'https://example.com/search?q=php&page=2';
$parts = parse_url($url);
parse_str($parts['query'], $params);
$params['page'] = 3;
echo $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . '?' . http_build_query($params);Результат:
https://example.com/search?q=php&page=3Функции из этого ответа
- parse_str — Разбирает строку запроса в массив.
- http_build_query — Собирает из массива строку параметров для адреса.
- parse_url — Разбирает адрес на части.