web-dev-qa-db-ja.com

URL文字列からGET変数を取得します

ねえ、私はちょうど私のphpを通過しているURLを持っていると言いますそれを通過しているいくつかのGET変数を取得する簡単な方法はありますか?ページの実際のURLなどではありません。

のような文字列を含む

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

それらの変数の値を取得するための最良の方法は何ですか?

13
Belgin Fish

parse_str(parse_url($url, PHP_URL_QUERY), $array)、詳細については、parse_strの manpage を参照してください。

39
cristis
$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
) */
16
Kris

実際には、カスタム関数を作成するよりもはるかに簡単です。

$ queryStr = $ _SERVER ['QUERY_STRING'];

4
user1003932

私は次のようなものを使用します:

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

その後

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

それが4uで動作することを願っています。

0
misterte