建立CURL的基本步骤-四步
//1) 初始化
$ch = curl_init();
//2)设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,"http://www.xxx.net");
//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//启用时会将头文件的信息作为数据流输出
curl_setpot($ch,CURLOPT_HEADER,1);//很多时候不需要header头,设置为0,或者不设置(默认为0)
//3)执行并获取HTML文档内容
$output = curl_exec($ch);
//4)释放curl句柄
curl_close($ch);
//输出
echo $output;
项目跨域一般操作流程
以ThinkPHP为例
第一步:在需要获取数据的文件里做curl请求请求地址为你需要跨域的地址。(一般第三方都会给请求的demo)
- 如果用第三方接口,可以直接拿到数据后做处理就行*
第二步:在跨域地址的文件里,进行数据操作。一般是用POST传值。
然后将处理好的数据返回
//这个函数的功能是将数值转换成json数据存储格式。JSON_UNESCAPED_UNICODE是防止一些中文变成乱码
echo json_encode($res,JSON_UNESCAPED_UNICODE);
第三步:在第一步 需要获取数据的文件里
将结果解析$data = json_decode($res,true);
然后就根据需求在搞事情
大致流程就是这样
下面是封装好的curl请求函数
//如果提示跨域 就可以在config 里设置 header头 允许全部跨域
header("Access-Control-Allow-Origin: *");
functionpost_api($url,$data)
{
//post 请求接口(公用)
$ch = curl_init();//初始化curl
curl_setopt($ch,CURLOPT_URL,$url);//抓取指定网页
curl_setopt($ch,CURLOPT_HEADER,0);//设置header
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);//这个是重点。
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);// https请求 不验证证书和hosts
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_POST,1);//post提交方式
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$flag = curl_exec($ch);//运行curl
curl_close($ch);
return $flag;
}
如果遇到 跨域问题,可以设置header头 信息
header("Access-Control-Allow-Origin: *");