PHP cURL是否可以传递多关联数组?

时间:2012-06-11 10:48:16

标签: php post curl

是否可以使用php中的cURL向页面发送多关联数组?

我能够传递数组,但会发生以下情况:

 // Open Connection
    $ch = curl_init();

    // Set the URL
    curl_setopt($ch, CURLOPT_URL, $this->config['submission']['eyerys']);

    // Set the number of fields being sent:
    curl_setopt($ch,CURLOPT_POST,count($this->call['info']));

    // The string to send:
    curl_setopt($ch,CURLOPT_POSTFIELDS,$string);

    // Return transfer:
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    // SSL verification:
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    // Execute the post:
    $result = curl_exec($ch);

    $this->pre($result);

    // Close connection:
    $curl_close($ch);

我得到以下输出:

 Array
 (
        [info] => Array
        [answers] => Array
        [errors] => Array
 )

1 个答案:

答案 0 :(得分:1)

不,因为curl不知道你想如何编码它。并非每个服务器端语言/框架都使用相同的方式。我认为PHP是用户只需通过包含[]的密钥发送数据就可以创建数组的唯一语言。例如。在python世界中,只需发送两次相同的值,然后使用不同的函数(例如.getlist('key') - 取决于框架)来访问数组而不是单个值。

如果您可以控制远程脚本,请考虑使用标准化的东西,例如JSON。而不是发送一个formencoded的POST字符串,而是发送一个纯JSON正文或一个包含JSON的formencoded POST值。

如果不这样做,您很可能必须自己编码POST数据。