Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:将url参数解析为变量的最快方法?_Php_Url_Parameters - Fatal编程技术网

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

    ?>