как отправлять и получать данные в curl

0

Для отправки и получения данных я использовал следующее:

<?php
$host="localhost";
$username="root";
$password="";
$db_name="test";

mysql_connect("$host", "$username", "$password")or die("cannot connect to server");
mysql_select_db("$db_name")or die("cannot select db");
$query="select * from phone_gap";
$query=  mysql_query($query);
while ($row = mysql_fetch_assoc($query)) {
 $fields[]=$row;   
}

$data['details']=$fields;

$last_name="chaudhary";
$first_name="dharmendra";
//set POST variables
$url = 'http://localhost/test/get-post.php';
//open connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $data);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

?>

и get-post.php

foreach ($data['details'] as $key => $value) {
    print_r($key);
}

Если отправлять простые данные в массив, я могу легко получить

$fields = array(
                        'lname' => urlencode($last_name),
                        'fname' => urlencode($first_name),

                );

$ Fields_string = '';

foreach($fields as $key=>$value) { 
    print_r("$key"." ".$value);

    $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

и

print_r ($ _ POST);

существует какое-либо решение для curl, которое мы можем отправить динамические данные и получить их.

Спасибо и приветствую.

  • 0
    что вы подразумеваете под dynamic data ?
  • 0
    просто получить данные из таблицы ..
Показать ещё 5 комментариев
Теги:
curl

2 ответа

1
Лучший ответ
$query="select * from phone_gap";
$query=  mysql_query($query);

while ($row = mysql_fetch_assoc($query)) {
 $fields[]=$row;
}

$str = http_build_query($fields);

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $str);

//execute post
$result = curl_exec($ch);
echo $result;

и использовать в get-post.php

эхо ""; print_r ($ _ POST);

  • 0
    использовать предварительный тег перед print_r
0

Вам не нужно передавать пост в виде многомерного массива, просто используйте curl post следующим образом:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields);

Передайте переменную $ fields прямо в сообщение вместо этого, используя ее в массиве $ data. Это сработает для вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню