Intereting Posts

Как извлечь параметры запроса из строки URL в PHP?

Пользователи могут вводить URL-адреса, используя форму HTML на моем веб-сайте, поэтому они могут ввести что-то вроде этого: http://www.example.com?test=123&random=abc , это может быть что угодно. Мне нужно извлечь значение определенного параметра запроса, в данном случае «test» (значение 123). Есть ли способ сделать это?

Вы можете использовать parse_url и parse_str следующим образом:

 $query = parse_url('http://www.example.com?test=123&random=abc', PHP_URL_QUERY); parse_str($query, $params); $test = $params['test']; 

parse_url позволяет разделить URL-адрес в разных частях (схема, хост, путь, запрос и т. д.); здесь мы используем его для получения только запроса ( test=123&random=abc ). Затем мы можем проанализировать запрос с помощью parse_str .

Мне нужно было проверить URL-адрес, который был относительным для нашей системы, поэтому я не мог использовать parse_str. Для тех, кто в этом нуждается:

 $urlParts = null; preg_match_all("~[\?&]([^&]+)=([^&]+)~", $url, $urlParts); 

имя хоста необязательно, но требуется, по крайней мере, знак вопроса в начале строки параметров:

 $inputString = '?test=123&random=abc&usersList[]=1&usersList[]=2' ; parse_str ( parse_url ( $inputString , PHP_URL_QUERY ) , $params ); print_r ( $params );