GET параметры текущей страницы хранятся в массиве $_GET. Но как получить параметры URL из строковой переменной? Для этого необходимо использовать сочетание PHP функций parse_url и parse_str.
Предположим, что необходимо получить значение переменной login из такой строки:
https://www.alexgur.ru/a/?email=mail&login=alex&action=y
Скрипт будет выглядеть так:
$url = 'https://www.alexgur.ru/a/?email=mail&login=alex&action=y';
$parts = parse_url( $url );
parse_str( $parts['query'] , $query );
echo $query['login'];
Разберём подробнее, что делают функции
parse_url
parse_url - разбирает URL и возвращает его компоненты. Для нашего запроса parse_url вернёт такой массив:
Array
([scheme] => https
[host] => www.alexgur.ru
[path] => /a/
[query] => email=mail&login=alex&action=y)
Из результата работы функции parse_url нам интересены только параметры, которые находятся в ['query']. Но они записаны в одну строку. Поэтому придётся разбить эту строку на составляющие. В этом поможет функция parse_str.
parse_str
После получения строки с параметрами необходимо разбить её на части. Для этого пригодится функция parse_str. Первым её параметром стоит строка, из которой надо достать переменные. Во втором параметре стоит переменная, куда будет передан результат работы функции. Поэтому
parse_str( $parts['query'] , $query );
присвоит переменной $query следующие значения:
Array
([email] => mail
[login] => alex
[action] => y)
Остаётся только выбрать нужный элемент массива, чтобы вывести значение:
echo $query['login'];
и получим результат:
alex
спасибо!