php curl 请求api 接口

官方文档curl :  http://www.runoob.com/php/php-ref-curl.html

php开启curl : 

  ① 打开 php.ini 文件  extension=php_curl.dll  // 去掉前面的分号

② 检查php.ini的extension_dir值是哪个目录,检查该目录有无php_curl.dll,如果没有的请下载php_curl.dll

③ 再把php目录中的libeay32.dll,ssleay32.dll拷到c:\windows\system32里面

④ 重启下 apache或者iis即可。

  ⑤使用phpinfo()函数查看配置信息,查看curl是否开启; 或使用extension_loaded('curl')函数,返回布尔类型的值

  ⑥php 版本建议 5.6 以上,测试过 5.4+nginx 请求不到数据,原因暂且不知

curl get请求函数

function https_post($url, $data = null){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
        if (!empty($data)){
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return $output;
    }

 

curl post 请求函数

function https_get($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
        return $output;
    }

 

curl 函数:

header("Content-type: text/html; charset=utf-8");
$url = 'https://www.baidu.com/';// 页面编码与php 执行页面编码一致
/** curl  api 接口调用访问
 * @parem $url  接口地址
 * @parem $data 如果使用post 方式发送数据传递 $data 关联数组参数
 * @parem $cookie  设定HTTP请求中"Cookie: "部分的内容;多个cookie用分号分隔,分号后带一个空格(例如, "fruit=apple; colour=red")
 * */
function curl($url,$data=null,$cookie=null)
{
    // 初始化 curl
    $curl = curl_init();

    // 设置URL和相应的选项 curl_setopt — 设置一个cURL传输选项。
    //1.由 curl_init() 返回的 cURL 句柄; 2.需要设置的CURLOPT_XXX选项;3.将设置在option选项上的值
        curl_setopt($curl, CURLOPT_URL, $url); // url
        curl_setopt($curl, CURLOPT_HEADER, 0); // 将头文件的信息作为数据流输出; 1 为输出 ;0 不输出

    //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出:
    //1 或者 true为不输出,0 或false  直接输出到页面上
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);

    // https请求 不验证证书和hosts 请求数据时使用,跳过验证; 例如参数 返回数据
    //CURLOPT_SSL_VERIFYPEER 禁用后cURL将终止从服务端进行验证  默认为true
    //如果CURLOPT_SSL_VERIFYPEER(默认值为2)被启用,CURLOPT_SSL_VERIFYHOST需要被设置成TRUE否则设置为FALSE。
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

    // 如果传送数据---- 使用post 方式
     if(isset($data) && !empty($data))
     {
        //设置post方式提交 启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
         //表示是否启用第二个option,这里为CURLOPT_POST,设置为1,表示启用时会发送一个常规的POST请求
         curl_setopt($curl, CURLOPT_POST, 1);

         /*这个参数可以通过urlencoded后的字符串类似'para1=val1&para2=val2&...'或使用一个以字段名为键值,
         字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
          * */
         curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
     }
    // 如果传递 HTTP请求中 的 Cookie
    if(isset($cookie) && !empty($cookie))
    {
        curl_setopt($curl, CURLOPT_COOKIE, $cookie);
    }

    // 抓取URL并把它传递给浏览器 执行curl 返回页面数据
        $data = curl_exec($curl);
    // 关闭curl 连接
        curl_close($curl);
}
//  调用函数
curl($url);

 

转载于:https://www.cnblogs.com/xuey/p/8461622.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值