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中被引入。
-
- void curl_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 -
- resource curl_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 -
string curl_unescape ( resource
$ch
, string$str
)该函数解码给定的 URL 编码的字符串。
-
array curl_version ([ int
$age
= CURLVERSION_NOW ] )返回关于cURL的版本信息。