php 使用 CURL 获取数据
第一种,POST 和 GET 合并
function http_curl($url, $type = 'get', $data = ''){ $cl = curl_init(); //初始化 curl_setopt($cl, CURLOPT_URL, $url); //设置 cURL 传输选项 curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1); // 将curl_exec()获取的信息以字符串返回,而不是直接输出。
curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, false);
if($type == 'post'){ curl_setopt($cl, CURLOPT_POST, 1); //发送 POST 请求,类型为:application/x-www-form-urlencoded curl_setopt($cl, CURLOPT_POSTFIELDS, $data); } $output = curl_exec($cl); //执行 cURL 会话 curl_close($cl); return $output; }
第二种 POST 和 GET分开
POST
$url = "http://localhost/web_services.php"; $post_data = array ("username" => "bob","key" => "12345"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // post数据 curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
// post的变量 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $output = curl_exec($ch); curl_close($ch); //打印获得的数据 print_r($output);
GET
//初始化 $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "http://www.jb51.net"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //执行并获取HTML文档内容 $output = curl_exec($ch); //释放curl句柄 curl_close($ch); //打印获得的数据 print_r($output);
以上方式获取到的数据是json格式的
使用 json_decode($output,true)
可解析为数组;使用 json_decode($output) 可解析为对象
参数说明:
$url :要请求的url地址,如果是get方式请求,可以把参数直接加到url后面
$type:请求方式
$data:post方式请求时携带的参数
curl_init() 初始化一个cURL会话
curl_setopt() 设置一个cURL传输选项
curl_exec() 执行一个cURL会话
curl_close() 关闭一个cURL会话
——现在的努力,只为小时候吹过的牛逼! ——