使用curl

时间:2017-05-17 09:49:20

标签: php mysql json curl php-curl

我一直在阅读很多关于php CURL的内容,我仍然无法掌握它发送数据的机制,似乎不可能使用curl直接从数据库发送php数组或php对象,但似乎有可能使用JSON发送数据,因为curl将数据作为字符串返回,但我已经在某处读过可以将php数组或对象作为帖子数据并通过curl发送(有点像ajax我猜测)。但是,我没有找到关于此的干净和适当的教程或示例。

我希望那些对curl有足够了解的人会分享一个关于如何正确发送数据的例子,比如来自mysql数据库使用curl作为数组/对象/ JSON。希望它对于寻找未来使用curl跨域发送数据的方式的人来说非常有用。

提前谢谢。

2 个答案:

答案 0 :(得分:2)

cURL发出HTTP请求。它可以向HTTP服务器发出HTTP请求,并且可以从HTTP服务器获取HTTP响应。

它无法与数据库通信。它可以与运行服务器端程序(可以用PHP编写)的HTTP服务器通信,该程序从数据库获取数据,在HTTP响应中对其进行格式化并发送。

HTTP请求或响应可以包含文本。 PHP数组不是文本。 PHP对象不是文本。 JSON是文本。 json_encode函数将PHP数组转换为JSON文本。

答案 1 :(得分:1)

您无法使用cURL将数据作为数组发送,因此,此时您最好的选择是使用JSON发送数据。您可以通过以下方式进行操作..

$data = array("name" => "Hagrid", "age" => "36");                                                                    
$data_string = json_encode($data);                                                                                   

$ch = curl_init('http://your-url-to-post-the-data');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string))                                                                       
);                                                                                                                   

$result = curl_exec($ch);

您还可以按照POSTing JSON Data With PHP cURL

中的说明操作