首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在CURLOPT_POSTFIELDS中包含数组数据?

如何在CURLOPT_POSTFIELDS中包含数组数据?
EN

Stack Overflow用户
提问于 2011-02-24 20:24:17
回答 2查看 59.5K关注 0票数 23

我基本上是用PHP处理一个HTML表单,然后将其发送到其他地方进行存储和处理。然而,我在通过curl发送数组列表时遇到了问题。我需要这样做,当它到达接收服务器时,它就像是直接来自输入表单。

如果序列化数组,则在使用该函数时不会收到任何错误,但是这会使它们无法被服务器读取,因此它们需要保留post格式,就好像它们来自HTML表单一样。

我使用的是Kohana,但是Curl的原理仍然是一样的,下面是我的代码:

            $path = "/some/process/path";
            $store = "http://www.website.com";

            $url = $store . $path;

            $screenshots = array();
            $screenshots[0] = 'image1.jpg';
            $screenshots[1] = 'image2.jpg';
            $screenshots[2] = 'image3.jpg';

            $videoLinks = array();
            $videoLinks[0] = 'video1.wmv';
            $videoLinks[1] = 'video2.wmv';

            $params = array(
                'id' => '12',
                'field1' => 'field1text',
                'field2' => 'field2text',
                'field3' => 'field3text',
                'screenshots' => $screenshots,
                'videoLinks' => $videoLinks,
            );

            $options = array(
                CURLOPT_HTTPHEADER => array("Accept: application/json"),
                CURLOPT_TIMEOUT => 30,
                CURLOPT_POST => TRUE,
                CURLOPT_POSTFIELDS => $params,
            );

            $data = Remote::get($url, $options);
            $json = json_decode($data);

干杯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-24 20:25:46

CURLOPT_POSTFIELDS => http_build_query($params),

http://php.net/manual/en/function.http-build-query.php

票数 56
EN

Stack Overflow用户

发布于 2011-05-21 00:41:01

我刚接触cURL和它的PHP版本,但据我所知,您可以选择使用数组,但不要忘记,如果要发送field=>values数组,则必须将Content-Type头设置为multipart/form-data以便正确解释。也就是说,参数数组的格式是错误的。在最后的数组值之后有一个额外的逗号。这可能就是博克的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5104607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档