0

Curl を使用して、いくつかの変数と配列 (30 インデックス) を URL に渡したいと考えています。

別のサイトにアクセスするには、すべての変数と配列を取得します。

$an_array=array('c1_key'=>c1_value,'c2_key'=>c3_value,...........'c30_key'=>c30_value);
'http://domain.com?a=1&b=2&c=an_array'

誰でもこれを行う方法を教えてもらえますか。

アップデート:

@hek2mgl が提案したとおりに使用http_build_query()しましたが、30 のインデックス配列を渡したときに、結果の URL には 14 の変数しかありません。誰でも理由を説明できますか?

4

3 に答える 3

0

を使用しhttp_build_query()ます。この関数は、スカラー、数値配列、さらには連想配列 (任意の次元) を処理できます。

$query = array(
    'user' => 'hek2mgl',
    'actions' => array('foo', 'bar'),
    'description' => array(
        'hobby' => 'hacking',
        'likesPHP' => 'yes and no'
    )
);
$url = 'http://www.yourserver.com/script.php?';
$url .= http_build_query($query);
echo $url;

出力:

http://www.yourserver.com/script.php?user=hek2mgl&actions%5B0%5D=foo&actions%5B1%5D=bar&description%5Bhobby%5D=hacking&description%5BlikesPHP%5D=yes+and+no
于 2013-08-31T08:56:11.627 に答える
0

$_GET は制限されています。代わりに $_POST を使用することをお勧めします。json_encode() と json_decode() を利用することもできます。

<?php
    // site1
$test = json_encode(array("hello" => "world"));

// site2        
extract(json_decode($test, true));  

echo $hello;
?>
于 2013-08-31T09:46:37.613 に答える
0

serialize($array); を使用できます。これにより、文字列形式の配列コンテンツが提供され、その文字列で url_encode() を使用して送信され、実行中に url に追加されます。サーバー側では、シリアル化を解除できます(url_decode ($_GET ['c'])); 配列を取り戻します。

これがあなたを助けることを願っています。

于 2013-08-31T09:02:21.210 に答える