Name
parse_str()
Synopsis
void parse_str ( stringstr
[, array&arr
] )
QUERY_STRING
is the literal text sent after the question mark in a HTTP GET request, which means that if the page requested was mypage.php?foo=bar&bar=baz, QUERY_STRING
is set to foo=bar&bar=baz
. The parse_str()
function is designed to take a query string like that one and convert it to variables in the same way that PHP does when variables come in. The difference is that variables parsed using parse_str()
are converted to global variables, as opposed to elements inside $_GET
. So:
if (isset($foo)) { print "Foo is $foo<br />"; } else { print "Foo is unset<br />"; } parse_str("foo=bar&bar=baz"); if (isset($foo)) { print "Foo is $foo<br />"; } else { print "Foo is unset<br />"; }
That will print out Foo is unset
followed by Foo is bar
, because the call to parse_str()
will set $foo
to bar
and $bar
to baz
. Optionally, you can pass an array as the second parameter to parse_str()
, and it will put the variables into there. That would make the script look like this:
$array = array(); if (isset($array['foo'])) { print "Foo is {$array['foo']}<br />"; } else { print "Foo is unset<br />"; } parse_str("foo=bar&bar=baz", $array); if (isset($array['foo'])) { print "Foo is {$array['foo']}<br />"; } else { print "Foo is unset<br />"; }
That script has the same output as before, except that the variables in the query string are placed into $array
. As you can see, the variable names are used as keys in the array, and their values are ...
Get PHP in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.