使用php curl发送数据数组(相同的键值)

时间:2012-12-16 17:21:18

标签: php django post curl

我正在发送姓名和电子邮件列表。

我正在尝试使用curl创建与此表单相同的功能

<form method="post" action='http://url'>        
    name: <input type="text" name="name" value='name1'>
    email:<input type="text" name="email" value='email1'>
    name: <input type="text" name="name" value='name2'>
    email: <input type="text" name="email" value='email2'>
    <input type="submit" value="Submit">
</form>

我想使用相同的密钥,所以我可以使用django

names = request.POST.getlist('name')

获取列表中的所有名称。

现在我正在尝试使用php curl

中的表单
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL            => "http://url",
CURLOPT_POST           => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS     => array(
            'name' => 'name1',
            'email' => 'name1@email',
            'name' => 'name2',
            'email' => 'name2@email',
            ),
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
print $result;
curl_close($ch);

并且它不起作用,它只获得最后2个值。 这是因为数组是关联的,因此最后的值会覆盖以前的值。

3 个答案:

答案 0 :(得分:1)

在PHP中,数组键必须是唯一的。第二个“名称”将覆盖第一个“名称”中的数据,因此您需要稍微不同的方案。

答案 1 :(得分:1)

我最终做的是使用字符串而不是php关联数组

$ch = curl_init();
$curlConfig = array(
CURLOPT_URL            => "http://url",
CURLOPT_POST           => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS     => "name=name1&emailname1@email&name=name2&email=name2@email"
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
print $result;
curl_close($ch);

答案 2 :(得分:0)

你可以使用这样的东西。你有办法在Django脚本中转储数据吗?

CURLOPT_POSTFIELDS     => array(
    array(
            'name' => 'name1',
            'email' => 'name1@email',
         ),
    array(
            'name' => 'name2',
            'email' => 'name2@email',
         )
)