本文操作环境:windows7系统、PHP7.1版、DELL G3电脑
php curl 怎么只获取数据?
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会话