tags:

views:

90

answers:

4

Hey, say I have a url just being passed through my php is there any easy way to get some GET variables that are being passed through it? It's not the actual url of the page or anything.

like a just have a string containing

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

Whats the best way to get the values for those variables?

A: 

A quick google for "PHP GET" gives this page from w3schools:

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

Anon.
He's not asking about retrieving the parameters of the current page. Rather, he wants to parse the query string from some arbitrary URL, i.e. from some string.
George Marian
Exactly, thanks George
Belgin Fish
+4  A: 

parse_str(parse_url($url, PHP_URL_QUERY), $array), see the manpage for parse_str for more info.

cristis
Nice, elegant solution.
George Marian
+6  A: 
$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
) */
Kris
A: 

I'd use something like:

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

then

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

Hope it works 4 u.

misterte