Ответ 1
parse_str(parse_url($url, PHP_URL_QUERY), $array)
, см. manpage для parse_str для получения дополнительной информации.
Эй, скажем, у меня есть 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)
, см. manpage для 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
)
*/
Надеюсь, что он работает 4 u.
Быстрый google для "PHP GET" дает эту страницу из w3schools: