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 ...