標籤:斷行符號 不能 init 哪些 libcurl 進度條 path cap 中斷連線
1.CURL是利用URL文法在命令列方式下工作的開源檔案傳輸工具。
2.它被廣泛應用在Unix、多種Linux發行版中。而且有DOS和Win32、Win64下的移植版本號碼。
3.它支援非常多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。
4.CURL是瑞典CURLl組織開發的,您能夠訪問: http://curl.haxx. se 擷取它的源碼和相關說明。
5.PHP CURL函數列表:
函數 |
描寫敘述 |
curl_close() |
關閉一個cURL會話。 |
curl_copy_handle() |
複製一個cURL控制代碼和它的全部選項。 |
curl_errno() |
返回最後一次的錯誤號碼。 |
curl_error() |
返回一個保護當前會話近期一次錯誤的字串。 |
curl_escape() |
返迴轉義字串。對給定的字串進行URL編碼。 |
curl_exec() |
運行一個cURL會話。 |
curl_file_create() |
建立一個 CURLFile 對象。 |
curl_getinfo() |
擷取一個cURL串連資源控制代碼的資訊。 |
curl_init() |
初始化一個cURL會話。 |
curl_multi_add_handle() |
向curl批處理會話中加入單獨的curl控制代碼。 |
curl_multi_close() |
關閉一組cURL控制代碼。 |
curl_multi_exec() |
執行當前 cURL 控制代碼的子串連。 |
curl_multi_getcontent() |
假設設定了CURLOPT_RETURNTRANSFER,則返回擷取的輸出的文字資料流。 |
curl_multi_info_read() |
擷取當前解析的cURL的相關傳輸資訊。 |
curl_multi_init() |
返回一個新cURL批處理控制代碼。 |
curl_multi_remove_handle() |
移除curl批處理控制代碼資源中的某個控制代碼資源。 |
curl_multi_select() |
等待全部cURL批處理中的活動串連。 |
curl_multi_setopt() |
設定一個批處理cURL傳輸選項。 |
curl_multi_strerror() |
返回描寫敘述錯誤碼的字串文本。 |
curl_pause() |
暫停及恢複串連。 |
curl_reset() |
重設libcurl的交談控制代碼的全部選項。 |
curl_setopt_array() |
為cURL傳輸會話大量設定選項。 |
curl_setopt() |
設定一個cURL傳輸選項。 |
curl_share_close() |
關閉cURL共用控制代碼。 |
curl_share_init() |
初始化cURL共用控制代碼。 |
curl_share_setopt() |
設定一個共用控制代碼的cURL傳輸選項。 |
curl_strerror() |
返回錯誤碼的字串描寫敘述。 |
curl_unescape() |
解碼URL編碼後的字串。 |
curl_version() |
擷取cURL版本號碼資訊。 |
6.CURL開發基本步驟
(1)初始化:curl_init()
(2)設定變數:curl_setopt()或curl_setopt_array()
(3)運行並擷取結果:curl_exec()
(4)釋放CURL控制代碼:curl_close()
7.CURLOPT參數總結:
CURLOPT_AUTOREFERER
自己主動設定header中的referer資訊
CURLOPT_BINARYTRANSFER
在啟用CURLOPT_RETURNTRANSFER時候將擷取資料返回
CURLOPT_COOKIESESSION
啟用時curl會只傳遞一個session cookie,忽略其它的cookie,預設狀況下curl會將全部的cookie返回給服務端。session cookie是指那些用來推斷server端的session是否有效而存在的cookie。
CURLOPT_CRLF
啟用時將Unix的分行符號轉換成斷行符號分行符號。
CURLOPT_DNS_USE_GLOBAL_CACHE
啟用時會啟用一個全域的DNS緩衝。此項為安全執行緒的,而且默覺得true。
CURLOPT_FAILONERROR
顯示HTTP狀態代碼,預設行為是忽略編號小於等於400的HTTP資訊
CURLOPT_FILETIME
啟用時會嘗試改動遠程文檔中的資訊。結果資訊會通過curl_getinfo()函數的CURLINFO_FILETIME選項返回。
CURLOPT_FOLLOWLOCATION
啟用時會將serverserver返回的“Location:”放在header中遞迴的返回給server,使用CURLOPT_MAXREDIRS能夠限定遞迴返回的數量。
CURLOPT_FORBID_REUSE
在完畢互動以後強迫中斷連線,不能重用。
CURLOPT_FRESH_CONNECT
強制擷取一個新的串連,替代緩衝中的串連。
CURLOPT_FTP_USE_EPRT
CURLOPT_FTP_USE_EPSV
CURLOPT_FTPAPPEND
CURLOPT_FTPASCII
CURLOPT_FTPLISTONLY
CURLOPT_HEADER
啟用時會將標頭檔的資訊作為資料流輸出。
CURLOPT_HTTPGET
啟用時會設定HTTP的method為GET。由於GET是預設是,所以僅僅在被改動的情況下使用。
CURLOPT_HTTPPROXYTUNNEL
啟用時會通過HTTP代理來傳輸。
CURLOPT_MUTE
講curl函數中全部改動過的參數恢複預設值。
CURLOPT_NETRC
在串連建立以後,訪問~/.netrc檔案擷取username和password資訊串連遠程網站。
CURLOPT_NOBODY
啟用時將不正確HTML中的body部分進行輸出。
CURLOPT_NOPROGRESS
啟用時關閉curl傳輸的進度條。此項的預設設定為true
CURLOPT_NOSIGNAL
啟用時忽略全部的curl傳遞給php進行的訊號。在SAPI多線程傳輸時此項被預設開啟。
CURLOPT_POST
啟用時會發送一個常規的POST請求。類型為:application/x-www-form-urlencoded,就像表單提交的一樣。
CURLOPT_PUT
啟用時同意HTTP傳送檔案,必須同一時候設定CURLOPT_INFILE和CURLOPT_INFILESIZE
CURLOPT_RETURNTRANSFER
講curl_exec()擷取的資訊以檔案流的形式返回,而不是直接輸出。
CURLOPT_SSL_VERIFYPEER
CURLOPT_TRANSFERTEXT
CURLOPT_UNRESTRICTED_AUTH
在使用CURLOPT_FOLLOWLOCATION產生的header中的多個locations中持續追加username和password資訊,即使網域名稱已發生改變。
CURLOPT_UPLOAD
啟用時同意檔案傳輸
CURLOPT_VERBOSE
啟用時會彙報全部的資訊,存放在STDERR或指定的CURLOPT_STDERR中
CURLOPT_BUFFERSIZE
每次擷取的資料中讀入緩衝的大小。這個值每次都會被填滿。
CURLOPT_CLOSEPOLICY
不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,還存在另外三個,可是curl臨時還不支援。.
CURLOPT_CONNECTTIMEOUT
在發起串連前等待的時間,假設設定為0,則不等待。
CURLOPT_DNS_CACHE_TIMEOUT
設定在記憶體中儲存DNS資訊的時間。默覺得120秒。
CURLOPT_FTPSSLAUTH
CURLOPT_HTTP_VERSION
設定curl使用的HTTP協議。CURL_HTTP_VERSION_NONE(讓curl自己推斷),CURL_HTTP_VERSION_1_0(HTTP/1.0)。CURL_HTTP_VERSION_1_1(HTTP/1.1)
CURLOPT_HTTPAUTH
使用的HTTP驗證方法,可選的值有:CURLAUTH_BASIC。CURLAUTH_DIGEST。CURLAUTH_GSSNEGOTIATE,CURLAUTH_NTLM,CURLAUTH_ANY。CURLAUTH_ANYSAFE。能夠使用“|”操作符分隔多個值,curl讓server選擇一個支援最好的值,CURLAUTH_ANY等價於CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM,CURLAUTH_ANYSAFE等價於CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
CURLOPT_INFILESIZE
設定上傳檔案的大小
CURLOPT_LOW_SPEED_LIMIT
當傳輸速度小於CURLOPT_LOW_SPEED_LIMIT時,PHP會依據CURLOPT_LOW_SPEED_TIME來推斷是否因太慢而取消傳輸。
CURLOPT_LOW_SPEED_TIME
The number of seconds the transfer should be below CURLOPT_LOW_SPEED_LIMIT for PHP to consider the transfer too slow and abort.
當傳輸速度小於CURLOPT_LOW_SPEED_LIMIT時。PHP會依據CURLOPT_LOW_SPEED_TIME來推斷是否因太慢而取消傳輸。
CURLOPT_MAXCONNECTS
同意的最大串連數量,超過是會通過CURLOPT_CLOSEPOLICY決定應該停止哪些串連
CURLOPT_MAXREDIRS
指定最多的HTTP重新導向的數量,這個選項是和CURLOPT_FOLLOWLOCATION一起使用的。
CURLOPT_PORT
一個可選的用來指定串連port的量
CURLOPT_PROXYAUTH
CURLOPT_PROXYPORT
CURLOPT_PROXYTYPE
CURLOPT_RESUME_FROM
在恢複傳輸時傳遞一個位元組位移量(用來斷點續傳)
CURLOPT_SSL_VERIFYHOST
CURLOPT_SSLVERSION
CURLOPT_TIMECONDITION
假設在CURLOPT_TIMEVALUE指定的某個時間以後被編輯過。則使用CURL_TIMECOND_IFMODSINCE返回頁面。假設沒有被改動過,而且CURLOPT_HEADER為true,則返回一個"304 Not Modified"的header,CURLOPT_HEADER為false,則使用CURL_TIMECOND_ISUNMODSINCE,預設值為CURL_TIMECOND_IFMODSINCE
CURLOPT_TIMEOUT
設定curl同意啟動並執行最長秒數
CURLOPT_TIMEVALUE
設定一個CURLOPT_TIMECONDITION使用的時間戳記,在預設狀態下使用的是CURL_TIMECOND_IFMODSINCE
CURLOPT_CAINFO
CURLOPT_CAPATH
CURLOPT_COOKIE
設定HTTP請求中“Set-Cookie:”部分的內容。
CURLOPT_COOKIEFILE
包括cookie資訊的檔案名稱,這個cookie檔案能夠是Netscape格式或者HTTP風格的header資訊。
CURLOPT_COOKIEJAR
串連關閉以後。存放cookie資訊的檔案名稱
CURLOPT_CUSTOMREQUEST
CURLOPT_EGBSOCKET
CURLOPT_ENCODING
header中“Accept-Encoding: ”部分的內容,支援的編碼格式為:"identity","deflate","gzip"。假設設定為空白字串,則表示支援全部的編碼格式
CURLOPT_FTPPORT
CURLOPT_INTERFACE
在外部網路介面中使用的名稱,能夠是一個介面名,IP或者主機名稱。
CURLOPT_KRB4LEVEL
KRB4(Kerberos 4)安全層級的設定,能夠是一下幾個值之中的一個:"clear"。"safe"。"confidential","private"。預設的值為"private"。設定為null的時候表示禁用KRB4,如今KRB4安全僅能在FTP傳輸中使用。
CURLOPT_POSTFIELDS
在HTTP中的“POST”操作。
假設要傳送一個檔案,須要一個@開頭的檔案名稱
CURLOPT_PROXY
設定通過的HTTP代理server
CURLOPT_PROXYUSERPWD
串連到代理server的,格式為“[username]:[password]”的username與password。
CURLOPT_RANDOM_FILE
設定存放SSL用到的隨機數種子的檔案名稱
CURLOPT_RANGE
設定HTTP傳輸範圍。能夠用“X-Y”的形式設定一個傳輸區間,假設有多個HTTP傳輸,則使用逗號分隔多個值。形如:"X-Y,N-M"。
CURLOPT_REFERER
設定header中"Referer: " 部分的值。
CURLOPT_SSL_CIPHER_LIST
CURLOPT_SSLCERT
傳遞一個包括PEM格式認證的字串。
CURLOPT_SSLCERTPASSWD
傳遞一個包括使用CURLOPT_SSLCERT認證必需的password。
CURLOPT_SSLCERTTYPE
CURLOPT_SSLENGINE
CURLOPT_SSLENGINE_DEFAULT
CURLOPT_SSLKEY
CURLOPT_SSLKEYPASSWD
CURLOPT_SSLKEYTYPE
CURLOPT_URL
須要擷取的URL地址,也能夠在PHP的curl_init()函數中設定。
CURLOPT_USERAGENT
在HTTP請求中包括一個”user-agent”頭的字串。
CURLOPT_USERPWD
傳遞一個串連中須要的username與password。格式為:“[username]:[password]”。
CURLOPT_HTTP200ALIASES
設定不再以error的形式來處理HTTP 200的響應,格式為一個數組。
CURLOPT_HTTPHEADER
設定一個header中傳輸內容的數組。
CURLOPT_POSTQUOTE
CURLOPT_QUOTE
CURLOPT_FILE
設定輸出檔案的位置。值是一個資源類型,默覺得STDOUT (瀏覽器)。
CURLOPT_INFILE
在上傳檔案的時候須要讀取的檔案地址,值是一個資源類型。
CURLOPT_STDERR
設定一個錯誤輸出地址,值是一個資源類型,代替預設的STDERR。
CURLOPT_WRITEHEADER
設定header部分內容的寫入的檔案地址,值是一個資源類型。
CURLOPT_HEADERFUNCTION
設定一個回呼函數,這個函數有兩個參數。第一個是curl的資源控制代碼,第二個是輸出的header資料。header資料的輸出必須依賴這個函數,返回已寫入的資料大小。
CURLOPT_PASSWDFUNCTION
設定一個回呼函數,有三個參數。第一個是curl的資源控制代碼,第二個是一個password提示符,第三個參數是password長度同意的最大值。
返回password的值。
CURLOPT_READFUNCTION
設定一個回呼函數,有兩個參數。第一個是curl的資源控制代碼,第二個是讀取到的資料。資料讀取必須依賴這個函數。返回讀取資料的大小,比方0或者EOF。
CURLOPT_WRITEFUNCTION
設定一個回呼函數,有兩個參數。第一個是curl的資源控制代碼。第二個是寫入的資料。資料寫入必須依賴這個函數。返回精確的已寫入資料的大小
8.CURLINFO參數總結:
CURLINFO_EFFECTIVE_URL
最後一個有效url地址
CURLINFO_HTTP_CODE
最後一個收到的HTTP代碼
CURLINFO_FILETIME
遠程擷取文檔的時間,假設無法擷取,則返回值為“-1”
CURLINFO_TOTAL_TIME
最後一次傳輸所消耗的時間
CURLINFO_NAMELOOKUP_TIME
名稱解析所消耗的時間
CURLINFO_CONNECT_TIME
建立串連所消耗的時間
CURLINFO_PRETRANSFER_TIME
從建立串連到準備傳輸所使用的時間
CURLINFO_STARTTRANSFER_TIME
從建立串連到傳輸開始所使用的時間
CURLINFO_REDIRECT_TIME
在事務傳輸開始前重新導向所使用的時間
CURLINFO_SIZE_UPLOAD
上傳資料量的總值
CURLINFO_SIZE_DOWNLOAD
下載資料量的總值
CURLINFO_SPEED_DOWNLOAD
平均下載速度
CURLINFO_SPEED_UPLOAD
平均上傳速度
CURLINFO_HEADER_SIZE
header部分的大小
CURLINFO_HEADER_OUT
發送請求的字串
CURLINFO_REQUEST_SIZE
在HTTP請求中有問題的請求的大小
CURLINFO_SSL_VERIFYRESULT
CURLINFO_CONTENT_LENGTH_DOWNLOAD
從Content-Length: field中讀取的下載內容長度
CURLINFO_CONTENT_LENGTH_UPLOAD
上傳內容大小的說明
CURLINFO_CONTENT_TYPE
下載內容的“Content-type”值,NULL表示server沒有發送有效“Content-Type: header”
PHP CURL 中文說明