2011-03-07 65 views
1

下面是我發佈到API後得到的回覆....我不認爲parse_url會削減它。有沒有內置的PHP函數或更好的方法把它變成一個數組?這是的var_dump將此響應解析爲關聯數組的最佳方法?

sting(163) "response=3&responsetext=Duplicate transaction REFID:115545335&authcode=&transactionid=&avsresponse=&cvvresponse=&orderid=&type=auth&response_code=300&processor_id=" 
+2

尋找['parse_str'](http://www.php.net/manual/en/function.parse-str.php)? – 2011-03-07 19:04:24

回答

3

使用parse_str()與可選$arr參數輸出。

解析STR,好像它是通過URL

+0

試過,當我做$ parsedQuery = parse_str($ checkAuth);後續代碼var_dump($ parsedQuery);我得到NULL的輸出 – none 2011-03-07 19:05:14

+0

@Pekka:Wiki?真? – 2011-03-07 19:05:26

+0

@mprototype:仔細看看文檔,它不會返回一個對象,它會自動將結果放在您的範圍內。如果要將其分配給變量,請使用第二個參數。 – 2011-03-07 19:06:08

0

您正在尋找通過了parse_str.

原來的查詢字符串轉換成一個關聯數組查詢字符串。

0

我建議:

$elements = explode('&', $input); 
$data = array(); 
foreach($elements as $e) { 
    $d = explode('=', $e); 
    $data[$d[0]] = isset($d[1]) ? $d[1] : ''; 
} 

但也許有更好的方法。

+1

不打算投票,但[確實存在更好的方式](http://www.php.net/manual/en/function.parse-str.php)。 – 2011-03-07 19:07:22

+0

由於OP說parse_url不起作用,我想象parse_str也不起作用,但也許我錯了。 – krtek 2011-03-07 19:09:10

+0

parse_url只是對段進行劃分(突出顯示該字符串實際上是一堆GET變量)S /他希望將這些變量解析爲PHP典型的輸入URL - 這是'parse_str'的​​來源玩。 – 2011-03-07 19:10:53

相關問題