Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как разобрать и собрать строку запроса

Короткий ответ

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 — Разбирает адрес на части.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.