文字

预定义常量

下列常量由此扩展定义,且仅在此扩展编译入 PHP 或在运行时动态载入时可用。

Descriptions and uses for these constants are described within the curl_setopt() and curl_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 )

用户评论:

[#1] uramihsayibok, gmail, com [2015-09-02 21:07:54]

Regarding CURLE_OPERATION_TIMEDOUT vs. CURLE_OPERATION_TIMEOUTED:

Originally cURL had the constant named TIMEOUTED (read: "timeout-ed"). This was changed[1] in 2007 and v7.17.0 to be TIMEDOUT (read: "timed out") and the old constant kept in place as an alias.

PHP started off using TIMEOUTED as well. The TIMEDOUT constant was added[2] in 2012 and v5.5.0 and the old constant was *kept in place*.

If you ask me, the TIMEDOUT constant reads more nicely (not to mention is technically the correct one to use) and as long as you're using PHP 5.5+ then it is available. If you have to support older versions then I suggest you keep using the new constant and add a polyfill like

<?php
if (version_compare(PHP_VERSION"5.5.0""<")) {
    
define("CURLE_OPERATION_TIMEDOUT"CURLE_OPERATION_TIMEOUTED);
}
?>


or

<?php
// PHP <5.5.0
defined("CURLE_OPERATION_TIMEDOUT") || define("CURLE_OPERATION_TIMEDOUT"CURLE_OPERATION_TIMEOUTED);
?>


to be removed once you stop supporting them.

[1] https://github.com/bagder/curl/commit/9f44a95522162c0f4a61093efe1bf1f58b087358#diff-d8c6cb80505e0f7d5e27fca2a682aa34L119
[2] https://github.com/php/php-src/commit/9ab45d3edbafa3ee751472c3f8d1fb3f51f38cf1#diff-ac978e3de205f1d14eb960e0eb15ef24R723

[#2] nimasdj [AT] yahoo [DOT] com [2015-07-28 16:34:39]

I hope this would be useful to convert error codes:

<?php
$curl_errno 
= array(
1  => "CURLE_UNSUPPORTED_PROTOCOL",
2  => "CURLE_FAILED_INIT",
3  => "CURLE_URL_MALFORMAT",
4  => "CURLE_URL_MALFORMAT_USER",
5  => "CURLE_COULDNT_RESOLVE_PROXY",
6  => "CURLE_COULDNT_RESOLVE_HOST",
7  => "CURLE_COULDNT_CONNECT",
8  => "CURLE_FTP_WEIRD_SERVER_REPLY",
9  => "CURLE_FTP_ACCESS_DENIED",
10 => "CURLE_FTP_USER_PASSWORD_INCORRECT",
11 => "CURLE_FTP_WEIRD_PASS_REPLY",
12 => "CURLE_FTP_WEIRD_USER_REPLY",
13 => "CURLE_FTP_WEIRD_PASV_REPLY",
14 => "CURLE_FTP_WEIRD_227_FORMAT",
15 => "CURLE_FTP_CANT_GET_HOST",
16 => "CURLE_FTP_CANT_RECONNECT",
17 => "CURLE_FTP_COULDNT_SET_BINARY",
18 => "CURLE_FTP_PARTIAL_FILE or CURLE_PARTIAL_FILE",
19 => "CURLE_FTP_COULDNT_RETR_FILE",
20 => "CURLE_FTP_WRITE_ERROR",
21 => "CURLE_FTP_QUOTE_ERROR",
22 => "CURLE_HTTP_NOT_FOUND or CURLE_HTTP_RETURNED_ERROR",
23 => "CURLE_WRITE_ERROR",
24 => "CURLE_MALFORMAT_USER",
25 => "CURLE_FTP_COULDNT_STOR_FILE",
26 => "CURLE_READ_ERROR",
27 => "CURLE_OUT_OF_MEMORY",
28 => "CURLE_OPERATION_TIMEDOUT or CURLE_OPERATION_TIMEOUTED",
29 => "CURLE_FTP_COULDNT_SET_ASCII",
30 => "CURLE_FTP_PORT_FAILED",
31 => "CURLE_FTP_COULDNT_USE_REST",
32 => "CURLE_FTP_COULDNT_GET_SIZE",
33 => "CURLE_HTTP_RANGE_ERROR",
34 => "CURLE_HTTP_POST_ERROR",
35 => "CURLE_SSL_CONNECT_ERROR",
36 => "CURLE_BAD_DOWNLOAD_RESUME or CURLE_FTP_BAD_DOWNLOAD_RESUME",
37 => "CURLE_FILE_COULDNT_READ_FILE",
38 => "CURLE_LDAP_CANNOT_BIND",
39 => "CURLE_LDAP_SEARCH_FAILED",
40 => "CURLE_LIBRARY_NOT_FOUND",
41 => "CURLE_FUNCTION_NOT_FOUND",
42 => "CURLE_ABORTED_BY_CALLBACK",
43 => "CURLE_BAD_FUNCTION_ARGUMENT",
44 => "CURLE_BAD_CALLING_ORDER",
45 => "CURLE_HTTP_PORT_FAILED",
46 => "CURLE_BAD_PASSWORD_ENTERED",
47 => "CURLE_TOO_MANY_REDIRECTS",
48 => "CURLE_UNKNOWN_TELNET_OPTION",
49 => "CURLE_TELNET_OPTION_SYNTAX",
50 => "CURLE_OBSOLETE",
51 => "CURLE_SSL_PEER_CERTIFICATE",
52 => "CURLE_GOT_NOTHING",
53 => "CURLE_SSL_ENGINE_NOTFOUND",
54 => "CURLE_SSL_ENGINE_SETFAILED",
55 => "CURLE_SEND_ERROR",
56 => "CURLE_RECV_ERROR",
57 => "CURLE_SHARE_IN_USE",
58 => "CURLE_SSL_CERTPROBLEM",
59 => "CURLE_SSL_CIPHER",
60 => "CURLE_SSL_CACERT",
61 => "CURLE_BAD_CONTENT_ENCODING",
62 => "CURLE_LDAP_INVALID_URL",
63 => "CURLE_FILESIZE_EXCEEDED",
64 => "CURLE_FTP_SSL_FAILED",
79 => "CURLE_SSH"
);
?>

[#3] me at ruslanbes dot com [2015-05-11 08:28:29]

Note that prior to PHP 5.5 following constants were missing and were available only through their numeric values:

CURL_SSLVERSION_DEFAULT // 0
CURL_SSLVERSION_TLSv1  // 1
CURL_SSLVERSION_SSLv2 // 2
CURL_SSLVERSION_SSLv3 // 3

This was fixed after this support request: https://bugs.php.net/bug.php?id=62318

[#4] s dot coletta at unidata dot it [2009-10-08 02:17:42]

Beware of CURLE_* constants!

On the official site:

http://curl.haxx.se/libcurl/c/libcurl-errors.html

some constants are different, some missing compared to the PHP implementation.

Some examples:

in PHP the curl error number 28 is called

CURLE_OPERATION_TIMEOUTED

while in the official site is:

CURLE_OPERATION_TIMEDOUT

So if you use the second, it won't march the error 28 because in PHP it is not defined that way.

The same is for these:

CURLE_HTTP_RETURNED_ERROR
CURLE_UPLOAD_FAILED
CURLE_INTERFACE_FAILED
CURLE_SSL_CERTPROBLEM
CURLE_SEND_FAIL_REWIND
CURLE_LOGIN_DENIED
CURLE_AGAIN

that are in someway named differently or missing from PHP.

[#5] Ron [2007-08-04 23:48:45]

<?php


$url 'http://www.ericgiguere.com/tools/http-header-viewer.html';

// disguises the curl using fake headers and a fake user agent.
function disguise_curl($url)
{
  
$curl curl_init();

  
// Setup headers - I used the same headers from Firefox version 2.0.0.6
  // below was split up because php.net said the line was too long. :/
  
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*
function cURLdownload($url$file)
{
  if( !
cURLcheckBasicFunctions() ) return "UNAVAILABLE: cURL Basic Functions";
  
$ch curl_init();
  if(
$ch)
  {
    
$fp fopen($file"w");
    if(
$fp)
    {
      if( !
curl_setopt($chCURLOPT_URL$url) )
      {
        
fclose($fp); // to match fopen()
        
curl_close($ch); // to match curl_init()
        
return "FAIL: curl_setopt(CURLOPT_URL)";
      }
      if( !
curl_setopt($chCURLOPT_FILE$fp) ) return "FAIL: curl_setopt(CURLOPT_FILE)";
      if( !
curl_setopt($chCURLOPT_HEADER0) ) return "FAIL: curl_setopt(CURLOPT_HEADER)";
      if( !
curl_exec($ch) ) return "FAIL: curl_exec()";
      
curl_close($ch);
      
fclose($fp);
      return 
"SUCCESS: $file [$url]";
    }
    else return 
"FAIL: fopen()";
  }
  else return 
"FAIL: curl_init()";
}

// Download from 'example.com' to 'example.txt'
echo cURLdownload("http://www.example.com""example.txt");

?>


- JL????

上一篇: 下一篇: