Эй, скажем, у меня есть URL-адрес, который проходит через мой php, есть ли простой способ получить переменные GET, которые проходят через него? Это не настоящий URL-адрес страницы или что-то еще.
как и просто строка, содержащая
http://www.somesite.com/index.php?url=var&file_id=var&test=var
Каков наилучший способ получить значения для этих переменных?
parse_str(parse_url($url, PHP_URL_QUERY), $array)
, см. man- страницу для parse_str для получения дополнительной информации.
$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 ) */
На самом деле это намного проще, чем писать какие-либо пользовательские функции.
$ queryStr = $ _SERVER ['QUERY_STRING'];
Я бы использовал что-то вроде:
preg_match_all('/(\?|&)([^=]+=[^&]*)/', $string , $matches);
тогда
print_r($matches[2]); /* Array ( [0] => url=var [1] => file_id=var [2] => test=var ) */
Надеюсь, что это работает.
Быстрый google для «PHP GET» дает эту страницу из w3schools: