2011-12-27 62 views
4

可能重複:
Parse query string into an arrayPHP:最快的方法來解析變量的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,但這需要太長時間。我的腳本需要在一次有時:-(

KISS解析約10000+網址 - 保持簡單,愚蠢

+0

最快的方法是使用'parse_str'。正則表達式太昂貴,解析URL的算法非常簡單。這是**一臺**機器上最快的方式。如果你需要性能,你總是可以將工作分配到多臺機器上,但這樣做更昂貴,實施也更難,特別是使用PHP。 – 2011-12-27 11:14:13

回答

32

使用parse_str()

$current_param = "name=Peter&car=Volvo&pizza=Diavola"; 
parse_str($current_param, $result); 
print_r($result); 

上面會輸出

Array 
(
    [name] => Peter 
    [car] => Volvo 
    [pizza] => Diavola 
) 
2

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 

    ?>