Разобрать
URL можно с помощью функции
parse_url.
Получить отдельные параметры строки запроса можно методом
parse_str.
$url = 'http://blog.des/?go=category&q=backend&page=2';
// в элементе с именем query будет строка параметров запроса
// go=category&q=backend&page=2
$query = parse_url($url)['query'];
// функция parse_str разберет строку параметров запроса
// и передаст ассоциативный массив в переменную $params
parse_str($query, $params);
// выводим значение параметра page
echo $params['page'];
Либо можно сразу в
parse_str передавать
URL:
$url = 'http://blog.des/?go=category&q=backend&page=2';
parse_str($url, $params);
echo $params['page'];
Если вы хотите получить значение параметра для текущей страницы, то проще это делать через
$_GET:
echo 'Текущая страница: '.$_GET['page'];
Удалить параметр из строки запроса можно просто собрав новую строку, опустив не нужные параметры. Для текущего адреса примерно так:
$queryString = [];
foreach ($_GET as $key => $value) {
// если параметр page, пропускаем его
if ($key == 'page') { continue; }
// остальные добавляем в queryString
$queryString[$key] = $value;
}
// собираем массив новых параметров в строку параметров запроса
$queryString = http_build_query($queryString);
// новые параметры
echo $queryString;
Получив новую строку параметров, можно сформировать новый
URL и выполнить перенаправление на него:
$url = "http://blog.des/";
if ($queryString != '')
{
$url .= "?".$queryString;
}
// это следует делать до первого вывода, иначе могут быть ошибки/предупреждения
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$url);