Fastest method to parse URL parameters into variables in PHP
20,967
Solution 1
Use parse_str()
.
$current_param = "name=Peter&car=Volvo&pizza=Diavola";
parse_str($current_param, $result);
print_r($result);
The above will output
Array
(
[name] => Peter
[car] => Volvo
[pizza] => Diavola
)
Solution 2
The parse_str() function can do the trick as you expect:
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>
Related videos on Youtube
Comments
-
mate64 almost 2 years
Possible Duplicate:
Parse query string into an arrayWhat's the fastest method, to parse a string of URL parameters into an array of accessible variables?
$current_param = 'name=Peter&car=Volvo&pizza=Diavola&....'; // Results in a nice array that I can pass: $result = array ( 'name' => 'Peter', 'car' => 'Volvo', 'pizza' => 'Diavola' )
I've tested a regular expression, but this takes way too long. My script needs to parse about 10000+ URLs at once sometimes :-(
KISS - keep it simple, stupid
-
N.B. over 12 yearsThe fastest method is to use
parse_str
. Regular expressions are way too expensive and the algorithm to parse a URL is very simple. That's the fastest way on one machine. If you require performance, you can always split the work across many machines but that's both more expensive and tiny bit harder to implement, especially with PHP.
-