PHP支持的由Daniel Stenberg創建的libcurl庫允許你與各種的服務器使用各種類型的協議進行連接和通訊。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap協議。libcurl同時也支持HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴展完成)、HTTP 基於表單的上傳、代理、cookies和用戶名+密碼的認證。
預定義常量
下列常量由此擴展定義,且僅在此擴展編譯入 PHP 或在運行時動態載入時可用。
Descriptions and uses for these constants are described within thecurl_setopt() andcurl_getinfo() documentation.
CURLOPT_AUTOREFERER
(integer) 從PHP 5.1.0開始可用CURLOPT_COOKIESESSION
(integer) 從PHP 5.1.0開始可用CURLOPT_DNS_USE_GLOBAL_CACHE
(integer)
CURLOPT_DNS_CACHE_TIMEOUT
(integer)
CURLOPT_FTP_SSL
(integer) 從PHP 5.2.0開始可用
CURLFTPSSL_TRY
(integer)從PHP 5.2.0開始可用
CURLFTPSSL_ALL
(integer)從PHP 5.2.0開始可用
CURLFTPSSL_
CONTROL
(integer) 從PHP 5.2.0開始可用
CURLFTPSSL_NONE
(integer) 從PHP 5.2.0開始可用
CURLOPT_PRIVATE
(integer) 從PHP 5.2.4開始可用
CURLOPT_FTPSSLAUTH
(integer) 從PHP 5.1.0開始可用
CURLOPT_PORT
(integer)
CURLOPT_FILE
(integer)
CURLOPT_INFILE
(integer)
CURLOPT_INFILESIZE
(integer)
CURLOPT_URL
(integer)
CURLOPT_PROXY
(integer)
CURLOPT_VERBOSE
(integer)
CURLOPT_HEADER
(integer)
CURLOPT_HTTPHEADER
(integer)
CURLOPT_NOPROGRESS
(integer)
CURLOPT_NOBODY
(integer)
CURLOPT_FAILONERROR
(integer)
CURLOPT_UPLOAD
(integer)
CURLOPT_POST
(integer)
CURLOPT_FTPLISTONLY
(integer)
CURLOPT_FTPAPPEND
(integer)
CURLOPT_FTP_CREATE_MISSING_DIRS
(integer)
CURLOPT_NETRC
(integer)
CURLOPT_FOLLOWLOCATION
(integer) 當PHP配置open_basedir或safe_mode被啓用時,該常量不 可用。
CURLOPT_FTPASCII
(integer)
CURLOPT_PUT
(integer)
CURLOPT_MUTE
(integer)
CURLOPT_USERPWD
(integer)
CURLOPT_PROXYUSERPWD
(integer)
CURLOPT_RANGE
(integer)
CURLOPT_TIMEOUT
(integer)
CURLOPT_TIMEOUT_MS
(integer)
CURLOPT_TCP_NODELAY
(integer)從PHP 5.2.1開始可用
CURLOPT_POSTFIELDS
(integer)
CURLOPT_PROGRESSFUNCTION
(integer)從PHP 5.3.0開始可用
CURLOPT_REFERER
(integer)
CURLOPT_USERAGENT
(integer)
CURLOPT_FTPPORT
(integer)
CURLOPT_FTP_USE_EPSV
(integer)
CURLOPT_LOW_SPEED_LIMIT
(integer)
CURLOPT_LOW_SPEED_TIME
(integer)
CURLOPT_RESUME_FROM
(integer)
CURLOPT_COOKIE
(integer)
CURLOPT_SSLCERT
(integer)
CURLOPT_SSLCERTPASSWD
(integer)
CURLOPT_WRITEHEADER
(integer)
CURLOPT_SSL_VERIFYHOST
(integer)
CURLOPT_COOKIEFILE
(integer)
CURLOPT_SSLVERSION
(integer)
CURLOPT_TIMECONDITION
(integer)
CURLOPT_TIMEVALUE
(integer)
CURLOPT_CUSTOMREQUEST
(integer)
CURLOPT_STDERR
(integer)
CURLOPT_TRANSFERTEXT
(integer)
CURLOPT_RETURNTRANSFER
(integer)
CURLOPT_QUOTE
(integer)
CURLOPT_POSTQUOTE
(integer)
CURLOPT_INTERFACE
(integer)
CURLOPT_KRB4LEVEL
(integer)
CURLOPT_HTTPPROXYTUNNEL
(integer)
CURLOPT_FILETIME
(integer)
CURLOPT_WRITEFUNCTION
(integer)
CURLOPT_READFUNCTION
(integer)
CURLOPT_PASSWDFUNCTION
(integer)
CURLOPT_HEADERFUNCTION
(integer)
CURLOPT_MAXREDIRS
(integer)
CURLOPT_MAXCONNECTS
(integer)
CURLOPT_CLOSEPOLICY
(integer)
CURLOPT_FRESH_CONNECT
(integer)
CURLOPT_FORBID_REUSE
(integer)
CURLOPT_RANDOM_FILE
(integer)
CURLOPT_EGDSOCKET
(integer)
CURLOPT_CONNECTTIMEOUT
(integer)
CURLOPT_CONNECTTIMEOUT_MS
(integer)
CURLOPT_SSL_VERIFYPEER
(integer)
CURLOPT_CAINFO
(integer)
CURLOPT_CAPATH
(integer)
CURLOPT_COOKIEJAR
(integer)
CURLOPT_SSL_CIPHER_LIST
(integer)
CURLOPT_BINARYTRANSFER
(integer)
CURLOPT_NOSIGNAL
(integer)
CURLOPT_PROXYTYPE
(integer)
CURLOPT_BUFFERSIZE
(integer)
CURLOPT_HTTPGET
(integer)
CURLOPT_HTTP_VERSION
(integer)
CURLOPT_SSLKEY
(integer)
CURLOPT_SSLKEYTYPE
(integer)
CURLOPT_SSLKEYPASSWD
(integer)
CURLOPT_SSLENGINE
(integer)
CURLOPT_SSLENGINE_DEFAULT
(integer)
CURLOPT_SSLCERTTYPE
(integer)
CURLOPT_CRLF
(integer)
CURLOPT_ENCODING
(integer)
CURLOPT_PROXYPORT
(integer)
CURLOPT_UNRESTRICTED_AUTH
(integer)
CURLOPT_FTP_USE_EPRT
(integer)
CURLOPT_HTTP200ALIASES
(integer)
CURLOPT_HTTPAUTH
(integer)
CURLAUTH_BASIC
(integer)
CURLAUTH_DIGEST
(integer)
CURLAUTH_GSSNEGOTIATE
(integer)
CURLAUTH_NTLM
(integer)
CURLAUTH_ANY
(integer)
CURLAUTH_ANYSAFE
(integer)
CURLOPT_PROXYAUTH
(integer)
CURLCLOSEPOLICY_LEAST_RECENTLY_USED
(integer)
CURLCLOSEPOLICY_LEAST_TRAFFIC
(integer)
CURLCLOSEPOLICY_SLOWEST
(integer)
CURLCLOSEPOLICY_CALLBACK
(integer)
CURLCLOSEPOLICY_OLDEST
(integer)
CURLINFO_PRIVATE
(integer)從PHP 5.2.4開始可用
CURLINFO_EFFECTIVE_URL
(integer)
CURLINFO_HTTP_CODE
(integer)
CURLINFO_HEADER_OUT
(integer)從PHP 5.1.3開始可用
CURLINFO_HEADER_SIZE
(integer)
CURLINFO_REQUEST_SIZE
(integer)
CURLINFO_TOTAL_TIME
(integer)
CURLINFO_NAMELOOKUP_TIME
(integer)
CURLINFO_CONNECT_TIME
(integer)
CURLINFO_PRETRANSFER_TIME
(integer)
CURLINFO_SIZE_UPLOAD
(integer)
CURLINFO_SIZE_DOWNLOAD
(integer)
CURLINFO_SPEED_DOWNLOAD
(integer)
CURLINFO_SPEED_UPLOAD
(integer)
CURLINFO_FILETIME
(integer)
CURLINFO_SSL_VERIFYRESULT
(integer)
CURLINFO_CONTENT_LENGTH_DOWNLOAD
(integer)
CURLINFO_CONTENT_LENGTH_UPLOAD
(integer)
CURLINFO_STARTTRANSFER_TIME
(integer)
CURLINFO_CONTENT_TYPE
(integer)
CURLINFO_REDIRECT_TIME
(integer)
CURLINFO_REDIRECT_COUNT
(integer)
CURL_TIMECOND_IFMODSINCE
(integer)
CURL_TIMECOND_IFUNMODSINCE
(integer)
CURL_TIMECOND_LASTMOD
(integer)
CURL_VERSION_IPV6
(integer)
CURL_VERSION_KERBEROS4
(integer)
CURL_VERSION_SSL
(integer)
CURL_VERSION_LIBZ
(integer)
CURLVERSION_NOW
(integer)
CURLE_OK
(integer)
CURLE_UNSUPPORTED_PROTOCOL
(integer)
CURLE_FAILED_INIT
(integer)
CURLE_URL_MALFORMAT
(integer)
CURLE_URL_MALFORMAT_USER
(integer)
CURLE_COULDNT_RESOLVE_PROXY
(integer)
CURLE_COULDNT_RESOLVE_HOST
(integer)
CURLE_COULDNT_CONNECT
(integer)
CURLE_FTP_WEIRD_SERVER_REPLY
(integer)
CURLE_FTP_ACCESS_DENIED
(integer)
CURLE_FTP_USER_PASSWORD_INCORRECT
(integer)
CURLE_FTP_WEIRD_PASS_REPLY
(integer)
CURLE_FTP_WEIRD_USER_REPLY
(integer)
CURLE_FTP_WEIRD_PASV_REPLY
(integer)
CURLE_FTP_WEIRD_227_FORMAT
(integer)
CURLE_FTP_CANT_GET_HOST
(integer)
CURLE_FTP_CANT_RECONNECT
(integer)
CURLE_FTP_COULDNT_SET_BINARY
(integer)
CURLE_PARTIAL_FILE
(integer)
CURLE_FTP_COULDNT_RETR_FILE
(integer)
CURLE_FTP_WRITE_ERROR
(integer)
CURLE_FTP_QUOTE_ERROR
(integer)
CURLE_HTTP_NOT_FOUND
(integer)
CURLE_WRITE_ERROR
(integer)
CURLE_MALFORMAT_USER
(integer)
CURLE_FTP_COULDNT_STOR_FILE
(integer)
CURLE_READ_ERROR
(integer)
CURLE_OUT_OF_MEMORY
(integer)
CURLE_OPERATION_TIMEOUTED
(integer)
CURLE_FTP_COULDNT_SET_ASCII
(integer)
CURLE_FTP_PORT_FAILED
(integer)
CURLE_FTP_COULDNT_USE_REST
(integer)
CURLE_FTP_COULDNT_GET_SIZE
(integer)
CURLE_HTTP_RANGE_ERROR
(integer)
CURLE_HTTP_POST_ERROR
(integer)
CURLE_SSL_CONNECT_ERROR
(integer)
CURLE_FTP_BAD_DOWNLOAD_RESUME
(integer)
CURLE_FILE_COULDNT_READ_FILE
(integer)
CURLE_LDAP_CANNOT_BIND
(integer)
CURLE_LDAP_SEARCH_FAILED
(integer)
CURLE_LIBRARY_NOT_FOUND
(integer)
CURLE_FUNCTION_NOT_FOUND
(integer)
CURLE_ABORTED_BY_CALLBACK
(integer)
CURLE_BAD_FUNCTION_ARGUMENT
(integer)
CURLE_BAD_CALLING_ORDER
(integer)
CURLE_HTTP_PORT_FAILED
(integer)
CURLE_BAD_PASSWORD_ENTERED
(integer)
CURLE_TOO_MANY_REDIRECTS
(integer)
CURLE_UNKNOWN_TELNET_OPTION
(integer)
CURLE_TELNET_OPTION_SYNTAX
(integer)
CURLE_OBSOLETE
(integer)
CURLE_SSL_PEER_CERTIFICATE
(integer)
CURLE_GOT_NOTHING
(integer)
CURLE_SSL_ENGINE_NOTFOUND
(integer)
CURLE_SSL_ENGINE_SETFAILED
(integer)
CURLE_SEND_ERROR
(integer)
CURLE_RECV_ERROR
(integer)
CURLE_SHARE_IN_USE
(integer)
CURLE_SSL_CERTPROBLEM
(integer)
CURLE_SSL_CIPHER
(integer)
CURLE_SSL_CACERT
(integer)
CURLE_BAD_CONTENT_ENCODING
(integer)
CURLE_LDAP_INVALID_URL
(integer)
CURLE_FILESIZE_EXCEEDED
(integer)
CURLE_FTP_SSL_FAILED
(integer)
CURLFTPAUTH_DEFAULT
(integer)從PHP 5.1.0開始可用
CURLFTPAUTH_SSL
(integer)從PHP 5.1.0開始可用
CURLFTPAUTH_TLS
(integer)從PHP 5.1.0開始可用
CURLPROXY_HTTP
(integer)
CURLPROXY_SOCKS5
(integer)
CURL_NETRC_OPTIONAL
(integer)
CURL_NETRC_IGNORED
(integer)
CURL_NETRC_REQUIRED
(integer)
CURL_HTTP_VERSION_NONE
(integer)
CURL_HTTP_VERSION_1_0
(integer)
CURL_HTTP_VERSION_1_1
(integer)
CURLM_CALL_MULTI_PERFORM
(integer)
CURLM_OK
(integer)
CURLM_BAD_HANDLE
(integer)
CURLM_BAD_EASY_HANDLE
(integer)
CURLM_OUT_OF_MEMORY
(integer)
CURLM_INTERNAL_ERROR
(integer)
CURLMSG_DONE
(integer)
cURL 函數
這些函數在PHP 4.0.2中被引入。
-
voidcurl_close ( resource
$ch
)關閉一個cURL會話並且釋放所有資源。cURL句柄
ch
也會被釋放。 -
resource curl_copy_handle ( resource
$ch
)複製一個cURL句柄並保持相同的選項。
-
int curl_errno ( resource
$ch
)返回最後一次cURL操作的錯誤號。
-
string curl_error ( resource
$ch
)返回一條最近一次cURL操作明確的文本的錯誤信息。
-
string curl_escape ( resource
$ch
, string$str
)該函數使用 URL 根據» RFC 3986編碼給定的字符串。
-
執行給定的cURL會話。
這個函數應該在初始化一個cURL會話並且全部的選項都被設置後被調用。
- curl_file_create — Create a CURLFile object此函數是該函數的別名:CURLFile::__construct()
-
獲取最後一次傳輸的相關信息。
-
resource curl_init ([ string
$url
=NULL
] )初始化一個新的會話,返回一個cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函數使用。
-
int curl_multi_add_handle ( resource
$mh
, resource$ch
)增加
ch
句柄到批處理會話mh
- void
curl_multi_close ( resource
$mh
)關閉一組cURL句柄。
-
int curl_multi_exec ( resource
$mh
, int&$still_running
)處理在棧中的每一個句柄。無論該句柄需要讀取或寫入數據都可調用此方法。
-
string curl_multi_getcontent ( resource
$ch
)如果
CURLOPT_RETURNTRANSFER
作爲一個選項被設置到一個具體的句柄,那麼這個函數將會以字符串的形式返回那個cURL句柄獲取的內容。 -
array curl_multi_info_read ( resource
$mh
[, int&$msgs_in_queue
=NULL
] )查詢批處理句柄是否單獨的傳輸線程中有消息或信息返回。消息可能包含諸如從單獨的傳輸線程返回的錯誤碼或者只是傳輸線程有沒有完成之類的報告。
重複調用這個函數,它每次都會返回一個新的結果,直到這時沒有更多信息返回時,
FALSE
被當作一個信號返回。通過msgs_in_queue
返回的整數指出將會包含當這次函數被調用後,還剩餘的消息數。 -
resource curl_multi_init ( void )
允許並行地處理批處理cURL句柄。
-
int curl_multi_remove_handle ( resource
$mh
, resource$ch
)從給定的批處理句柄
mh
中移除ch
句柄。當ch
句柄被移除以後,仍然可以合法地用curl_exec()執行這個句柄。當正在移除的句柄正在被使用,在處理的過程中所有的傳輸任務會被終止。 -
int curl_multi_select ( resource
$mh
[, float$timeout
= 1.0 ] )阻塞直到cURL批處理連接中有活動連接。
- boolcurl_multi_setopt (
resource
$mh
, int$option
, mixed$value
) — Set an option for the cURL multi handle - stringcurl_multi_strerror (
int
$errornum
) — Return string describing error code - intcurl_pause (
resource
$ch
, int$bitmask
) — Pause and unpause a connection - voidcurl_reset (
resource
$ch
)— Reset all options of a libcurl session handle -
bool curl_setopt_array ( resource
$ch
, array$options
)爲cURL傳輸會話批量設置選項。這個函數對於需要設置大量的cURL選項是非常有用的,不需要重複地調用curl_setopt()。
-
爲給定的cURL會話句柄設置一個選項。
- voidcurl_share_close (
resource
$sh
) — Close a cURL share handle - resourcecurl_share_init (void )
- — Initialize a cURL share handle
boolcurl_share_setopt ( resource
$sh
, int
$option
, string
$value
)— Set an option for a cURL share handle.stringcurl_strerror (
int $errornum
) — Return string describing the given error code
$ch
,
string$str
)該函數解碼給定的 URL 編碼的字符串。
$age
= CURLVERSION_NOW ] )返回關於cURL的版本信息。