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'

任何人都可以告诉我如何做到这一点。

更新:

http_build_query()按照@hek2mgl 的建议使用,但结果 url 中只有 14 个变量,而我传递了一个 30 个索引数组。谁能解释为什么?

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 回答