2015-04-24 91 views
1

我正在使用一個API,它給出了他們如何獲得我將要格式化的POST請求數據的示例。這是他們的例子:使用PHP格式化HTTP POST請求中的數據

un=chris& 
key=xxxx& 
origin=plot& 
platform=lisp& 
args=[[0, 1, 2], [3, 4, 5], [1, 2, 3], [6, 6, 5]]& 
kwargs={"filename": "plot from api", 
     "fileopt": "overwrite", 
     "style": { 
      "type": "bar" 
     }, 
     "traces": [1], 
     "layout": { 
      "title": "experimental data" 
     }, 
     "world_readable": true 
} 

我很困惑我應該如何把這些數據從現有的數組放在一起。從我所瞭解的例子中可以看出編碼的「字符串」只是部分編碼的?到目前爲止,我通過從數組中提取鍵和值來將字符串放在一起。 我正在尋找一個更現代的方法做到這一點更簡潔的方式?

+0

你能發佈您的代碼? –

+0

kwargs是JSON編碼的嗎?嘗試:http://php.net/manual/en/function.json-encode.php – cske

回答

0

我相信使用http_build_query會爲你解決這個問題。 給出的例子,這裏有一個如何使用它的樣品:

$args = array(array(0,1,2), array(3,4,5), array(1,2,3), array(6,6,5)); 

$kwargs = array(
    'filename' => 'plot from api', 
    'fileopt' => 'overwrite' 
    'style' => array('type' => 'bar'), 
    'traces' => array(1), 
    'layout' => array('title' => 'experimental data'), 
    'word_readable' => true 
); 

$request = array(
    'un' => 'chris', 
    'key' => 'xxx', 
    'origin' => 'plot', 
    'platform' => 'lisp', 
    'args' => $args, 
    'kwargs' => $kwargs 
); 

$queryString = http_build_query($request); 

echo $queryString; 

更多信息:https://php.net/http_build_query