2013-08-31 1 views
0

Я хочу передать некоторые переменные и массив (с 30 индексами) в URL с помощью Curl.Как создать URL-адрес на основе массива с 30 значениями

Чтобы получить на другом сайте все переменные и массив.

$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' 

Может ли кто-нибудь сказать мне, как это сделать.

Update:

Я использовал http_build_query() как @ hek2mgl предложил, но есть только 14 переменных в результате URL в то время как я передал массив 30 указательный. Может ли кто-нибудь объяснить, почему?

+0

Пожалуйста, покажите вывод 'var_dump ($ an_array);' *** и *** обеспечивают рабочий PHP пример с массивом и вызовом 'http_build_query'. – hakre

+0

Пожалуйста, добавьте ваш текущий код – hek2mgl

ответ

0

http_build_query(). Функция может работать с скаляры, числовые массивы и даже accociative массивов (в любом измерении):

$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 
+0

Я использовал его. Это работа. Но он отправляет только 14 переменных в url. Почему? У меня есть массив из 20 индексов – user2320325

+0

обновите свой вопрос и добавьте свой код. Будет нужно, чтобы он сказал больше – hek2mgl

0

Вы можете использовать Serialize ($ массив); который предоставит вам строковое содержимое массива, отправьте его с помощью url_encode() в эту строку, а затем добавьте его по URL-адресу, когда вы это делаете. который на стороне сервера вы можете unserialize (url_decode ($ _GET ['c'])); и вернуть ваш массив.

Надеюсь, это вам поможет.

0

$ _GET ограничен. Вместо этого я предлагаю использовать $ _POST. Вы также можете воспользоваться json_encode() и json_decode();

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

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

echo $hello; 
?> 

 Смежные вопросы

  • Нет связанных вопросов^_^