我一直在阅读很多关于php CURL的内容,我仍然无法掌握它发送数据的机制,似乎不可能使用curl直接从数据库发送php数组或php对象,但似乎有可能使用JSON发送数据,因为curl将数据作为字符串返回,但我已经在某处读过可以将php数组或对象作为帖子数据并通过curl发送(有点像ajax我猜测)。但是,我没有找到关于此的干净和适当的教程或示例。
我希望那些对curl有足够了解的人会分享一个关于如何正确发送数据的例子,比如来自mysql数据库使用curl作为数组/对象/ JSON。希望它对于寻找未来使用curl跨域发送数据的方式的人来说非常有用。
提前谢谢。
答案 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);
中的说明操作