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.
Öntanımlı Sabitler
Buradaki sabitler bu eklenti için tanımlanmış olup, sadece eklentinin PHP içinde derlenmiş olması veya çalışma anında devingen olarak yüklenmesi halinde kullanılabilir.
Bu sabitlerin kullanımı ve açıklamaları için curl_setopt() ve curl_getinfo() işlevlerinin belgelerine bakınız.
- CURLOPT_AUTOREFERER (integer)
- PHP 5.1.0'dan beri kullanılabilmektedir.
- CURLOPT_COOKIESESSION (integer)
- PHP 5.1.0'dan beri kullanılabilmektedir.
- CURLOPT_DNS_USE_GLOBAL_CACHE (integer)
- CURLOPT_DNS_CACHE_TIMEOUT (integer)
- CURLOPT_FTP_SSL (integer)
- PHP 5.2.0'dan beri kullanılabilmektedir.
- CURLFTPSSL_TRY (integer)
- PHP 5.2.0'dan beri kullanılabilmektedir.
- CURLFTPSSL_ALL (integer)
- PHP 5.2.0'dan beri kullanılabilmektedir.
- CURLFTPSSL_CONTROL (integer)
- PHP 5.2.0'dan beri kullanılabilmektedir.
- CURLFTPSSL_NONE (integer)
- PHP 5.2.0'dan beri kullanılabilmektedir.
- CURLOPT_PRIVATE (integer)
- PHP 5.2.4'ten beri kullanılabilmektedir.
- CURLOPT_FTPSSLAUTH (integer)
- PHP 5.1.0'dan beri kullanılabilmektedir.
- 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 veya safe_mode etkin olduğu takdirde bu sabit kullanılamaz.
- 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'den beri kullanılabilmektedir.
- 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)
- PHP 5.2.4'ten beri kullanılabilmektedir.
- CURLINFO_EFFECTIVE_URL (integer)
- CURLINFO_HTTP_CODE (integer)
- CURLINFO_HEADER_OUT (integer)
- PHP 5.1.3'ten beri kullanılabilmektedir.
- 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'dan beri kullanılabilmektedir.
- CURLFTPAUTH_SSL (integer)
- PHP 5.1.0'dan beri kullanılabilmektedir.
- CURLFTPAUTH_TLS (integer)
- PHP 5.1.0'dan beri kullanılabilmektedir.
- 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)
Öntanımlı Sabitler
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
