PHP:将url参数解析为变量的最快方法?
可能重复:PHP:将url参数解析为变量的最快方法?,php,url,parameters,Php,Url,Parameters,可能重复: 将url参数字符串解析为可访问变量数组的最快方法是什么 $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' ) 我已经测试了
将url参数字符串解析为可访问变量数组的最快方法是什么
$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'
)
我已经测试了一个REGEXP,但这需要很长时间。我的脚本有时需要一次解析大约10000多个url:-(
亲吻-保持简单,愚蠢使用
以上将输出
Array
(
[name] => Peter
[car] => Volvo
[pizza] => Diavola
)
parse_str()可以像您所期望的那样完成任务
<?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
?>
最快的方法是使用
parse_str
。正则表达式太昂贵,解析URL的算法非常简单。这是在一台机器上最快的方法。如果需要性能,您可以随时在多台机器上分配工作,但这既昂贵又有点难以实现,尤其是在PHP。
<?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
?>