PHP curl 请求数据 流程

建立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: *");

你可能感兴趣的:(PHP curl 请求数据 流程)