curl简单应用:
$icur = curl_init();
$url = 'http://localhost/learn/php_upload/upload_img/handle_img.php';
$data = array('img'=>'@',dirname(__FILE__).'/images/timg3.jpg');
//需要获取的URL地址,也可以在curl_init()函数中设置
curl_setopt($icur, CURLOPT_URL, $url);
//返回原生的(Raw)输出
curl_setopt($icur,CURLOPT_RETURNTRANSFER,true);
//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样
curl_setopt($icur,CURLOPT_POST,true);
//全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串类似'para1=val1¶2=val2&...'或使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
curl_setopt($icur,CURLOPT_POSTFIELDS,$data);
//成功时返回 TRUE, 或者在失败时返回 FALSE。 然而,如果 CURLOPT_RETURNTRANSFER选项被设置,函数执行成功时会返回执行的结果,失败时返回 FALSE
$result_data = curl_exec($icur);
//关闭一个cURL会话并且释放所有资源。cURL句柄ch 也会被释放 没有返回值
curl_close($icur);
请求远程地址,调用函数封装:
public function postcurl($url,$data = null)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output=json_decode($output,true);
}