我基本上是用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);
干杯。
发布于 2011-02-24 20:25:46
CURLOPT_POSTFIELDS => http_build_query($params),
发布于 2011-05-21 00:41:01
我刚接触cURL和它的PHP版本,但据我所知,您可以选择使用数组,但不要忘记,如果要发送field=>values数组,则必须将Content-Type头设置为multipart/form-data以便正确解释。也就是说,参数数组的格式是错误的。在最后的数组值之后有一个额外的逗号。这可能就是博克的原因。
https://stackoverflow.com/questions/5104607
复制相似问题