curl函數庫介紹

$cookie_jar = tempnam('./tmp','cookie.txt');
$ch = curl_init();
$options = array(CURLOPT_URL => "http://xxx.xxx.com/welcome/login",
      CURLOPT_HEADER => 1,
      CURLOPT_NOBODY => 0,
      CURLOPT_PORT => 80,
      CURLOPT_POST => 1,
      CURLOPT_POSTFIELDS => "username=test&&pwd=test",
      CURLOPT_RETURNTRANSFER => 1,
      CURLOPT_FOLLOWLOCATION => 1,
      CURLOPT_COOKIEJAR => $cookie_jar,
      CURLOPT_COOKIEFILE => $cookie_jar,
      CURLOPT_REFERER => "http://xxx.xxx.com/user/search/index"
                );
curl_setopt_array($ch, $options);
$temp = curl_exec($ch);
curl_close($ch);
echo $temp;
?>

函數列表CURL庫一共有17個函數:
curl_close:關閉CURL會話
curl_copy_handle:複製一個CURL會話句柄,同時3複製其所有參數
curl_errno:返回最後一個錯誤碼
curl_error:返回一個字符串,用以描述當前會話的最後一個錯誤
curl_exec:執行當前會話
curl_getinfo:獲取特定信息
curl_init:初始化CURL會話
curl_multi_add_handle:在一個多連接會話中添加一個句柄
curl_multi_close:關閉一個多句柄CRUL會話
curl_multi_exec:執行一個多句柄CURL會話
curl_multi_getcontent:返回一個句柄執行後的內容,如果設置了CURLOPT_RETURNTRANSFER
curl_multi_info_read:獲取當前所有連接的信息
curl_multi_init:初始化一個多句柄會話
curl_multi_remove_handle:從一個多句柄會話中刪除一個句柄
curl_multi_select:獲取所有綁定的套接字
curl_setopt:設置CURL傳輸選項
curl_version:獲取CURL版本


常用設置選項布爾值選項
CURLOPT_AUTOREFERER:當返回的信息頭含有轉向信息時,自動設置前向連接
CURLOPT_BINARYTRANSFER:TRUEtoreturntherawoutputwhenCURLOPT_RETURNTRANSFERisused.
CURLOPT_COOKIESESSION:標誌爲新的cookie會話,忽略之前設置的cookie會話
CURLOPT_CRLF:將Unix系統的換行符轉換爲Dos換行符
CURLOPT_DNS_USE_GLOBAL_CACHE:使用全局的DNS緩存
CURLOPT_FAILONERROR:忽略返回錯誤
CURLOPT_FILETIME:獲取請求文檔的修改日期,該日期可以用curl_getinfo()獲取。
CURLOPT_FOLLOWLOCATION:緊隨服務器返回的所有重定向信息
CURLOPT_FORBID_REUSE:當進程處理完畢後強制關閉會話,不再緩存供重用
CURLOPT_FRESH_CONNECT:強制建立一個新的會話,而不是重用緩存的會話
CURLOPT_HEADER:在返回的輸出中包含響應頭信息
CURLOPT_HTTPGET:設置HTTP請求方式爲GET
CURLOPT_HTTPPROXYTUNNEL:經由一個HTTP代理建立連接
CURLOPT_NOBODY:返回的輸出中不包含文檔信息.
CURLOPT_NOPROGRESS:禁止進程級別傳輸,PHP自動設爲真
CURLOPT_NOSIGNAL:忽略所有發往PHP的信息
CURLOPT_POST:設置POST方式提交數據,POST格式爲application/x-www-form-urlencoded
CURLOPT_PUTTRUE:設置PUT方式上傳文件,同時設置CURLOPT_INFILE和CURLOPT_INFILESIZE
CURLOPT_RETURNTRANSFER:返回字符串,而不是調用curl_exec()後直接輸出
CURLOPT_SSL_VERIFYPEER:SSL驗證開啓
CURLOPT_UNRESTRICTED_AUTH:一直鏈接後面附加用戶名和密碼,同時設置CURLOPT_FOLLOWLOCATION
CURLOPT_UPLOAD:準備上傳
整數值選項
CURLOPT_BUFFERSIZE:緩存大小
CURLOPT_CONNECTTIMEOUT:連接時間設置,默認0爲無限制
CURLOPT_DNS_CACHE_TIMEOUT:內存中保存DNS信息的時間,默認2分鐘
CURLOPT_INFILESIZE:上傳至遠程站點的文件尺寸
CURLOPT_LOW_SPEED_LIMIT:傳輸最低速度限制andabort.
CURLOPT_LOW_SPEED_TIME:傳輸時間限制
CURLOPT_MAXCONNECTS:最大持久連接數
CURLOPT_MAXREDIRS:最大轉向數
CURLOPT_PORT:連接端口
CURLOPT_PROXYAUTH:代理服務器驗證方式
CURLOPT_PROXYPORT:代理服務器端口
CURLOPT_PROXYTYPE:代理服務器類型
CURLOPT_TIMEOUT:CURL函數的最大執行時間
字符串選項
CURLOPT_COOKIE:HTTP頭中set-cookie中的cookie信息
CURLOPT_COOKIEFILE:包含cookie信息的文件,cookie文件的格式可以是Netscape格式,或者只是HTTP頭的格式
CURLOPT_COOKIEJAR:連接結束後保存cookie信息的文件
CURLOPT_CUSTOMREQUEST:自定義請求頭,使用相對地址
CURLOPT_ENCODING:HTTP請求頭中Accept-Encoding的值
CURLOPT_POSTFIELDS:POST格式提交的數據內容
CURLOPT_PROXY:代理通道
CURLOPT_PROXYUSERPWD:代理認證用戶名和密碼
CURLOPT_RANGE:返回數據的範圍,以字節記
CURLOPT_REFERER:前向鏈接
CURLOPT_URL:要連接的URL地址,可以在curl_init()中設置
CURLOPT_USERAGENT:HTTP頭中User-Agent的值
CURLOPT_USERPWD:連接種使用的驗證信息
數組選項
CURLOPT_HTTP200ALIASES:200響應碼數組,數組中的響應嗎被認爲是正確的響應
CURLOPT_HTTPHEADER:自定義請求頭信息
只能是流句柄的選項:
CURLOPT_FILE:傳輸要寫入的晚間句柄,默認是標準輸出
CURLOPT_INFILE:傳輸要讀取的文件句柄
CURLOPT_STDERR:作爲標準錯誤輸出的一個替換選項
CURLOPT_WRITEHEADER:傳輸頭信息要寫入的文件
回調函數選項
CURLOPT_HEADERFUNCTION:擁有兩個參數的回調函數,第一個是參數是會話句柄,第二是HTTP響應頭信息的字符串。使用此回調函數,將自行處理響應頭信息。響應頭信息按行返回。設置返回值爲字符串長度。
CURLOPT_READFUNCTION:擁有兩個參數的回調函數,第一個是參數是會話句柄,第二是HTTP響應頭信息的字符串。使用此函數,將自行處理返回的數據。返回值爲數據尺寸。
CURLOPT_WRITEFUNCTION:擁有兩個參數的回調函數,第一個是參數是會話句柄,第二是HTTP響應頭信息的字符串。使用此回調函數,將自行處理響應頭信息。響應頭信息是整個字符串。設置返回值爲字符串長度。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章