Получите переменные GET из строки URL

Эй, скажем, у меня есть URL-адрес, который проходит через мой php, есть ли простой способ получить переменные GET, которые проходят через него? Это не настоящий URL-адрес страницы или что-то еще.

как и просто строка, содержащая

http://www.somesite.com/index.php?url=var&file_id=var&test=var

Каков наилучший способ получить значения для этих переменных?

Ответы

Ответ 1

parse_str(parse_url($url, PHP_URL_QUERY), $array), см. manpage для parse_str для получения дополнительной информации.

Ответ 2

$href = 'http://www.somesite.com/index.php?url=var&file_id=var&test=var';

$url = parse_url($href);
print_r($url);
/* Array
(
    [scheme] => http
    [host] => www.somesite.com
    [path] => /index.php
    [query] => url=var&file_id=var&test=var
) */

$query = array();
parse_str($url['query'], $query);

print_r($query);
/* Array
(
    [url] => var
    [file_id] => var
    [test] => var
) */

Ответ 3

На самом деле это намного проще, чем писать какие-либо пользовательские функции.

$queryStr = $_SERVER ['QUERY_STRING'];

Ответ 4

Я бы использовал что-то вроде:

preg_match_all('/(\?|&)([^=]+=[^&]*)/', $string , $matches);

затем

print_r($matches[2]);
/*
Array
(
    [0] => url=var
    [1] => file_id=var
    [2] => test=var
)
*/

Надеюсь, что он работает 4 u.