2

経由でマルチ配列を送信しようとしましたcURLが、良い方法が見つかりません。

私のコード例:

$data = array( 'a' => 'testa', 'b' => 'testb', 'c[d]' => 'test1', 'c[e]' => 'test2' );

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

これは機能し、curl_init()サイトで必要な結果が得られます。

print_r( $_POST ):

Array (

    [a] => testa
    [b] => testb
    [c] => Array (

            [d] => test1
            [e] => test2
    )
)

次のように c 配列を動的に追加したいと思います。

$c['d'] = 'test1';
$c['e'] = 'test2';

array_pushしかし、またはを使用して配列を追加しようとすると、[]常にデータなしで配列内の (string)Array を取得します。

誰でも私がそれをするのを手伝ってもらえますか?

テストを高速化するためのコード全体:

$url = 'url_to_test.php';
$data = array( 'a' => 'testa', 'b' => 'testb', 'c[d]' => 'test1', 'c[e]' => 'test2' );
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$buffer = curl_exec ($ch);
curl_close ($ch);

echo $buffer;

test.php

print_r($_POST);

助けてくれてありがとう!

乾杯

4

2 に答える 2

4

$data = array( 'a' => 'testa', 'b' => 'testb', 'c[d]' => 'test1', 'c[e]' => 'test2' )

新しい文字列キー "c[d]" と "c[e]" を追加しただけです。

ネストされた配列が必要な場合は、次を使用します。

$data = array( 'a' => 'testa', 'b' => 'testb', 'c' => 
    array( 'd' => 'test1', 'e' => 'test2' )
)

- 編集 -

基本的にキーと値のペアのセットである POST データを設定しようとしています。ネストされた配列を提供することはできません。ただし、ネストされた配列をシリアル化し、反対側でデコードすることはできます。例えば:

$post_data = array('data' => serialize($data));

そして、受信側で:

$data = unserialize($_POST['data']);
于 2011-09-22T00:56:02.783 に答える