$url = "http://dingdingmaoer.com";//要访问的url
$curlObj = curl_init();//初始化
curl_setopt($curlObj,CURLOPT_URL,$url);//设置要访问的URL
curl_setopt($curlObj,CURLOPT_HEADER,false);//设置 是否保留头信息
curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,true);//设置 是否直接输出,(若获得的数据不需要再做处理设置为false/0)
//--------------------------以下是post请求 相关设置
$data = '';// post参数 多个参数以&符号进行拼接
curl_setopt($curlObj,CURLOPT_POST,true);//设置为post请求
curl_setopt($curlObj,CURLOPT_POSTFIELDS,$data);//设置post参数
curl_setopt($curlObj,CURLOPT_HTTPHEADER,[
"application/x-www-form-urlencoded; charset=utf-8",
"Content-length:".strlen($data)
]);// 设置post请求头
//--------------------------以下是cookie 相关设置
date_default_timezone_get('PRC');// 使用cookie时,必须先设置时区
curl_setopt($curlObj,CURLOPT_COOKIESESSION,true);
curl_setopt($curlObj,CURLOPT_COOKIEFILE,'cookiefile');//cookie保存文件名
curl_setopt($curlObj,CURLOPT_COOKIEJAR,'cookiefile');//cookie获取文件名
curl_setopt($curlObj,CURLOPT_COOKIE,session_name().'='.session_id());
curl_setopt($curlObj,CURLOPT_FOLLOWLOCATION,1);//让curl支持页面链接跳转
//--------------------------其他设置
curl_setopt($curlObj,CURLOPT_TIMEOUT,300);//设置超时时间,即超过5秒就不连接了
curl_setopt($curlObj,CURLOPT_USERPWD,"admin:admin"); //设置ftp登录帐号密码
$fp=fopen("download.php","r");// 保存到本地文件名
curl_setopt($curlObj,CURLOPT_INFILE,$fp); //设置写入文件
curl_setopt($curlObj,CURLOPT_INFILESIZE,filesize("download.php"));//设定上传文件的大小限制,字节(字节)为单位。
curl_setopt($curlObj,CURLOPT_UPLOAD,true);//设置为上传操作
curl_setopt($curlObj,CURLOPT_SSL_VERIFYPEER,false);// 关闭SSL验证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);// 跳过host验证
$result = curl_exec($curlObj);// 发送执行 并返回数据
// curl 错误处理
if(curl_errno($curlObj)) return "Curl error:" . curl_error($curlObj);
curl_close($curlObj);// 关闭cURL
return $result;
封装php之curl实现http与https请求的方法
/**
* @method curl GET/POST 默认GET请求
* @param $url 访问url
* @param null $data 非空为post请求
* @return mixed|string
*/
public function http_request($url, $data = null)
{
//初始化
$curl = curl_init();
//设置url
curl_setopt($curl, CURLOPT_URL, $url);
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, false);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置https请求 规避ssl的证书检查
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
//设置跳过host验证
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)) {
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
// 设置post请求头
/*
curl_setopt($curl,CURLOPT_HTTPHEADER,[
"Content-Type: application/json; charset=utf-8",
"Content-length:".strlen($data),
"api-key:key"
]);
*/
}
//执行命令
$output = curl_exec($curl);
//抓取错误信息
if (curl_errno($curl)) return "Curl error:" . curl_error($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
return $output;
}