Получить переменные GET из строки URL - PullRequest
13 голосов
/ 29 июня 2010

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

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

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

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

Ответы [ 5 ]

39 голосов
/ 29 июня 2010

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

16 голосов
/ 29 июня 2010
$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
) */
4 голосов
/ 04 октября 2012

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

$ queryStr = $ _SERVER ['QUERY_STRING'];

0 голосов
/ 29 июня 2010

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

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

тогда

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

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

0 голосов
/ 29 июня 2010

Быстрый Google для "PHP GET" дает эту страницу от w3schools:

http://www.w3schools.com/php/php_get.asp

...