Bootstrap

PHPCurl

PHP Curl学习笔记

$ch = curl_init();
//初始化,如果传递数据为Post,没传为Get
//跳过证书验证
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//设置请求服务器地址
curl_setopt($ch, CURLOPT_URL, $this->url);

//post传输需用CURLOPT_POST参数
  if(!empty($data)){
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        }

//如果有返回需求
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $result = curl_exec($ch);
 url_close($ch);
 return $result;
//如果没有,则可直接输出
 curl_exec($ch);
 curl_close($ch);

基本用法

  1. 初始化开启
$ch = curl_init();
  1. 设置选项和url
 curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net");
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 1可为true 
 curl_setopt($ch,CURLOPT_HEADER,0);
 
 //CURLOPT_RETURNTRANSFER后跟1是为了之后执行的exec返回内容是字符串。
  1. 执行并且获取html文档内容
 $output = curl_exec($ch);
 //如果没有错误 返回的对于url返回的数据,如发生错误返回false。
  1. 释放关闭curl
  curl_close($ch);

获取curl请求的输出信息

在curl_exec执行后,可以用curl_getinfo()获得输出信息(返回是一个数组)

例:
curl_exec($ch);
$info = curl_getinfo($sh);
echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

curl发送get请求

将url通过http_build_query拼接

$url = $url.'?'.http_build_query($data);
$ch = curl_init((string)$url);
 curl_setopt()...
...
return curl_exec($ch );

curl发送post,看是否有数据有数据,有执行

  if(!empty($data)){
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        }
;