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;}