1

名前とメールのリストを送信しています。

このフォームと同じ機能を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つの値のみを取得します。これは、配列が連想的であるため、最後の値が前の値を上書きするためです。

4

3 に答える 3

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);
于 2012-12-19T12:00:44.730 に答える
1

PHP では、配列キーは一意でなければなりません。2 番目の「名前」は最初の「名前」のデータを上書きするため、少し異なるスキームが必要になります。

于 2012-12-16T17:35:21.863 に答える
0

このような使い方ができるかもしれません。Django スクリプトでデータのダンプを作成する方法はありますか?

CURLOPT_POSTFIELDS     => array(
    array(
            'name' => 'name1',
            'email' => 'name1@email',
         ),
    array(
            'name' => 'name2',
            'email' => 'name2@email',
         )
)
于 2012-12-16T17:38:36.983 に答える