1

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
 )
4

1 に答える 1

1

いいえ、curl はエンコード方法を認識できないためです。すべてのサーバー側言語/フレームワークが同じ方法を使用するわけではありません。を含むキーでデータを送信するだけでユーザーが配列を作成できる言語は PHP だけだと思います[]。例えば。Python の世界では、同じ値を 2 回送信してから、別の関数 (.getlist('key')フレームワークによって異なりますが - など) を使用して、単一の値ではなく配列にアクセスします。

リモート スクリプトを制御できる場合は、JSON などの標準化されたものを使用することを検討してください。形式コード化された POST 文字列を送信する代わりに、純粋な JSON 本文、または JSON を含む形式コード化された単一の POST 値を送信します。

そうでない場合は、おそらく自分で POST データをエンコードする必要があります。

于 2012-06-11T10:51:02.193 に答える