PHP CURL 中文說明

來源:互聯網
上載者:User

標籤:斷行符號   不能   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 中文說明

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.