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.
Предварително-дефинирани константи
Константите по-долу са дефинирани в това разширение и ще бъдат налични единствено, когато това разширение е компилирано в PHP или пуснато динамично по време на изпълнение.
Descriptions and uses for these constants are described within the curl_setopt() and curl_getinfo() documentation.
- CURLOPT_AUTOREFERER ( integer )
- Available since PHP 5.1.0
- CURLOPT_COOKIESESSION ( integer )
- Available since PHP 5.1.0
- CURLOPT_DNS_USE_GLOBAL_CACHE ( integer )
- CURLOPT_DNS_CACHE_TIMEOUT ( integer )
- CURLOPT_FTP_SSL ( integer )
- Available since PHP 5.2.0
- CURLFTPSSL_TRY ( integer )
- Available since PHP 5.2.0
- CURLFTPSSL_ALL ( integer )
- Available since PHP 5.2.0
- CURLFTPSSL_CONTROL ( integer )
- Available since PHP 5.2.0
- CURLFTPSSL_NONE ( integer )
- Available since PHP 5.2.0
- CURLOPT_PRIVATE ( integer )
- Available since PHP 5.2.4
- CURLOPT_FTPSSLAUTH ( integer )
- Available since 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 )
- This constant is not available when open_basedir or safe_mode are enabled.
- 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 )
- Available since PHP 5.2.1
- CURLOPT_POSTFIELDS ( integer )
- 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 )
- Available since PHP 5.2.4
- CURLINFO_EFFECTIVE_URL ( integer )
- CURLINFO_HTTP_CODE ( integer )
- CURLINFO_HEADER_OUT ( integer )
- Available since 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 )
- Available since PHP 5.1.0
- CURLFTPAUTH_SSL ( integer )
- Available since PHP 5.1.0
- CURLFTPAUTH_TLS ( integer )
- Available since 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 )
Предварително-дефинирани константи
s dot coletta at unidata dot it
08-Oct-2009 09:17
08-Oct-2009 09:17
Kelvin Lim
06-Nov-2008 01:46
06-Nov-2008 01:46
Note that CURLAUTH_NTLM refers specifically to NTLMv1 authentication. As of this writing, the cURL library does not yet support NTLMv2.
Ron
05-Aug-2007 06:48
05-Aug-2007 06:48
<?
/*
* Author: Ron
* Released: August 4, 2007
* Description: An example of the disguise_curl() function in order to grab contents from a website while remaining fully camouflaged by using a fake user agent and fake headers.
*/
$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,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl); // execute the curl command
curl_close($curl); // close the connection
return $html; // and finally, return $html
}
// uses the function and displays the text off the website
$text = disguise_curl($url);
echo $text;
?>
~Ron
