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.
Predefined Constants
The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.
توضیحات و استفاده برای این ثابتها در مستندات curl_setopt() و curl_getinfo() توضیح داده شده است.
- 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)
- این ثابت هنگام فعالسازی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)
- Available since 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)
s dot coletta at unidata dot it ¶
3 years ago
Ron ¶
5 years ago
<?
/*
* 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
Kelvin Lim ¶
4 years ago
Note that CURLAUTH_NTLM refers specifically to NTLMv1 authentication. As of this writing, the cURL library does not yet support NTLMv2.
