curl常量设置
bool类型
CURLOPT_HEADER 是否显将头信息做为数据流输出 通常为FALSE
CURLOPT_POST 默认是GET 须要POST时设置TURE 启用时会变成post方式
CURLOPT_SSL_VERIFYPEER 禁用后禁止从服务端验证 作爬虫时通常禁用掉
CURLOPT_SSL_VERIFYHOST 禁用后禁止验证SSL 作爬虫时通常禁用掉
CURLOPT_RETURNTRANSFER 启用后返回返回执行结果 通常要true
int类型
CURLOPT_CONNECTTIMEOUT 发起连接是访问的时间 相似url访问网址等待的时间 通常是0 就是不限制
CURLOPT_INFILESIZE 设置上传文件大小限制 单位字节
CURLOPT_PORT 设置访问的端口 默认为80
CURLOPT_PROXYPORT 设置代理服务器访问的端口 默认为80
CURLOPT_TIMEOUT 设置最大访问时间 通常120 单位秒
CURLFILES文件类
name 待上传文件名称 必填
mime 文件mime类型 选填 会自动解析
postname 上传数据里面的文件名称 选填 会自动解析
API 相似于可远程访问的函数 有接受值和返回值
//获取微信图片function get_photo($token,$logo){ $url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=$token"; $data = array('buffer' => '@'.$logo); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);// curl_setopt ( $ch, CURLOPT_SAFE_UPLOAD, FALSE); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true ); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $return_data = curl_exec($ch); curl_close($ch); $return_data = json_decode($return_data,true); return $return_data['url'];}//通用curlfunction curl_http($url, $params, $method = 'GET', $header = array(), $multi = false){ $opts = array( CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => $header ); /* 根据请求类型设置特定参数 */ switch(strtoupper($method)){ case 'GET': $opts[CURLOPT_URL] = $url . '?' . http_build_query($params); break; case 'POST': //判断是否传输文件 $params = $multi ? $params : http_build_query($params); $opts[CURLOPT_URL] = $url; $opts[CURLOPT_POST] = 1; $opts[CURLOPT_POSTFIELDS] = $params; break; default: throw new Exception('不支持的请求方式!'); } /* 初始化并执行curl请求 */ $ch = curl_init(); curl_setopt_array($ch, $opts); $data = curl_exec($ch); $error = curl_error($ch); curl_close($ch); if($error) throw new Exception('请求发生错误:' . $error); return $data;}