Php Curl Kullanımı
PHP cURL kütüphanesi, HTTP isteklerini yapmak ve web hizmetleri ile etkileşimde bulunmak için kullanılan çok yönlü bir araçtır. Aşağıda PHP cURL'ün en yaygın kullanılan parametrelerini açıklayacağım:
- CURLOPT_URL: İstek yapılacak URL'i belirtir.
- CURLOPT_RETURNTRANSFER: Yanıtın bir değişkende saklanmasını sağlar.
- CURLOPT_SSL_VERIFYPEER: SSL sertifikasının doğrulanıp doğrulanmayacağını belirtir.
- CURLOPT_SSL_VERIFYHOST: SSL sertifikasının host adı ile doğrulanıp doğrulanmayacağını belirtir.
- CURLOPT_CUSTOMREQUEST: Özel bir HTTP istek yöntemi belirtir (örneğin, PUT veya DELETE).
- CURLOPT_POSTFIELDS: POST isteği ile gönderilecek veriyi belirtir.
- CURLOPT_HTTPHEADER: Özel HTTP başlıklarını belirtir.
- CURLOPT_CONNECTTIMEOUT: Sunucuya bağlanma zaman aşım süresini belirtir.
- CURLOPT_TIMEOUT: İstek zaman aşım süresini belirtir.
- CURLOPT_FOLLOWLOCATION: HTTP 3xx yönlendirmelerini otomatik olarak takip etmeyi belirtir.
- CURLOPT_MAXREDIRS: İstek sırasında izin verilen maksimum yönlendirme sayısını belirtir.
- CURLOPT_POSTREDIR: POST isteği gönderirken, yönlendirmeleri nasıl işleyeceğini belirtir.
- CURLOPT_USERAGENT: Kullanıcı ajanı başlığını belirtir.
- CURLOPT_COOKIE: İstek sırasında gönderilecek çerezleri belirtir.
- CURLOPT_COOKIEFILE ve CURLOPT_COOKIEJAR: Çerez dosyalarını belirtir.
- CURLOPT_PROXY: HTTP proxy sunucusunu belirtir.
- CURLOPT_UPLOAD: Bir dosya yükleme işlemi yapılıyorsa bu seçenek kullanılır.
- CURLOPT_AUTOREFERER: Otomatik olarak referer (HTTP başlığında "Referer" olarak geçer) başlığını ayarlar.
- CURLOPT_REFERER: Referer (HTTP başlığında "Referer" olarak geçer) başlığını belirtir.
- CURLOPT_ENCODING: Kabul edilebilir içerik sıkıştırma yöntemlerini belirtir.
- CURLOPT_USERPWD: Sunucu ile kimlik doğrulama gerektiren bir isteği yapıyorsanız, kullanıcı adı ve şifreyi belirtir.
- CURLOPT_PROXYUSERPWD: HTTP proxy sunucusu için kimlik doğrulama gerektiriyorsa, proxy kimlik bilgilerini belirtir.
- CURLOPT_PROXYPORT: HTTP proxy sunucusunun bağlantı noktasını belirtir.
- CURLOPT_PROXYTYPE: Kullanılan proxy türünü belirtir (örneğin, HTTP, SOCKS4, SOCKS5).
- CURLOPT_POSTFIELDSIZE: POST verilerinin boyutunu belirtir.
- CURLOPT_VERBOSE: cURL isteğinin ayrıntılı günlük bilgilerini göstermek için kullanılır.
- CURLOPT_HEADER: Yanıt başlıklarını almak için kullanılır.
- CURLOPT_INFILESIZE: Yüklenen dosyanın boyutunu belirtir.
- CURLOPT_WRITEFUNCTION: Yanıtın yazılacağı özel bir işlevi belirtir.
- CURLOPT_READFUNCTION: İstek verilerini okumak için özel bir işlevi belirtir.
- CURLOPT_STDERR: cURL hatalarının yazılacağı dosyayı belirtir.
- CURLOPT_DNS_CACHE_TIMEOUT: DNS sorgularını önbellekte tutma süresini belirtir.
- CURLOPT_PROXYAUTH: Proxy kimlik doğrulama türünü belirtir.
- CURLOPT_FILE: Yanıtın yazılacağı dosyayı belirtir.
- CURLOPT_PORT: İstek yapılacak bağlantı noktasını belirtir.
- CURLOPT_TCP_NODELAY: TCP yavaş başlatma seçeneğini belirtir.
- CURLOPT_INTERFACE: Gönderilen isteğin belirli bir ağ arabirimini kullanmasını belirtir.
- CURLOPT_COOKIESESSION: Çerez oturumu oluşturmayı belirtir.
- CURLOPT_CAINFO ve CURLOPT_CAPATH: SSL sertifikası doğrulama için CA dosyası veya dizinini belirtir.
- CURLOPT_CERTINFO: SSL sertifikası hakkında ayrıntılı bilgi toplamayı belirtir.
- CURLOPT_SSLCERT ve CURLOPT_SSLKEY: İstemci SSL sertifikası ve özel anahtarını belirtir.
- CURLOPT_SSLCERTPASSWD: İstemci SSL sertifikası için şifreyi belirtir.
- CURLOPT_SSLCERTTYPE: SSL sertifikasının türünü belirtir.
- CURLOPT_SSLKEYTYPE: Özel anahtarın türünü belirtir.
- CURLOPT_SSL_CIPHER_LIST: Kabul edilebilir SSL şifrelemelerini belirtir.
- CURLOPT_SSLVERSION: Kullanılacak SSL/TLS sürümünü belirtir.
- CURLOPT_SSL_VERIFYSTATUS: SSL sertifikasının durumunu doğrulama seçeneğini belirtir.
- CURLOPT_TIMECONDITION ve CURLOPT_TIMEVALUE: İstek koşullu olabilir ve zaman koşulunu ve değerini belirtir.
- CURLOPT_IPRESOLVE: İstemci IP çözümleme türünü belirtir.
- CURLOPT_MAXCONNECTS: Aynı anda kurulacak maksimum bağlantı sayısını belirtir.
CURLOPT_URL
: Bu seçenek, yapılan HTTP isteğinin hedef URL'sini belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_URL, "https://www.example.com");
CURLOPT_RETURNTRANSFER
: Bu seçenek, cURL'ün isteğin yanıtını bir değişkende saklamasını sağlar. Bu, isteğin sonucunu elde etmek için kullanılır. Örneğin:phpcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
CURLOPT_SSL_VERIFYPEER
: Bu seçenek, SSL sertifikasının doğrulanıp doğrulanmayacağını belirtir. Doğrulama yapılmasını istemiyorsanızfalse
olarak ayarlayabilirsiniz (güvenlik riski taşır). Örneğin:phpcurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
CURLOPT_SSL_VERIFYHOST
: Bu seçenek, SSL sertifikasının host adı ile doğrulanıp doğrulanmayacağını belirtir. Yine, güvenlik açısından dikkatli olunmalıdır. Örneğin:phpcurl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
CURLOPT_CUSTOMREQUEST
: Bu seçenek, özel bir HTTP istek yöntemi belirtmenizi sağlar. Örneğin, PUT veya DELETE gibi yöntemleri kullanabilirsiniz. Örneğin:phpcurl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
CURLOPT_POSTFIELDS
: Bu seçenek, POST isteği ile gönderilecek veriyi belirtir. Özellikle form verilerini gönderirken kullanılır. Örneğin:php$data = array('field1' => 'value1', 'field2' => 'value2'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
CURLOPT_HTTPHEADER
: Bu seçenek, özel HTTP başlıklarını belirtmenizi sağlar. Örneğin, kullanıcı tanımlı bir başlık eklemek için kullanılabilir. Örneğin:php$headers = array('Content-Type: application/json', 'Authorization: Bearer token123'); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
CURLOPT_CONNECTTIMEOUT
: Bu seçenek, sunucuya bağlanma işleminin zaman aşımını belirtir. Örneğin, bağlantı 30 saniyeden fazla sürmezse bağlantıyı sonlandırabilirsiniz. Örneğin:phpcurl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
CURLOPT_TIMEOUT
: Bu seçenek, isteğin tamamlanma süresini belirtir. İstek belirtilen süre içinde tamamlanmazsa zaman aşımına uğrar. Örneğin:phpcurl_setopt($ch, CURLOPT_TIMEOUT, 60);
CURLOPT_FOLLOWLOCATION
: Bu seçenek, HTTP 3xx yönlendirmelerini otomatik olarak takip etmeyi belirtir. Yani, bir sayfa başka bir yere yönlendirildiğinde, cURL bu yönlendirmeyi otomatik olarak takip eder. Örneğin:phpcurl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Bu seçenekler cURL kütüphanesini kullanarak HTTP istekleri yaparken oldukça kullanışlıdır ve isteğinizi özelleştirmenize olanak tanır.
CURLOPT_USERPWD
: Bu seçenek, sunucu ile kimlik doğrulama gerektiren bir isteği yaparken kullanıcı adı ve şifreyi belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_USERPWD, "username:password");
CURLOPT_PROXYUSERPWD
: Bu seçenek, HTTP proxy sunucusu için kimlik doğrulama gerektiriyorsa, proxy kimlik bilgilerini belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_PROXYUSERPWD, "proxyuser:proxypassword");
CURLOPT_PROXYPORT
: Bu seçenek, HTTP proxy sunucusunun bağlantı noktasını belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_PROXYPORT, 8080);
CURLOPT_PROXYTYPE
: Bu seçenek, kullanılan proxy türünü belirtir. Örneğin, HTTP, SOCKS4 veya SOCKS5 gibi. Örneğin:phpcurl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
CURLOPT_POSTFIELDSIZE
: Bu seçenek, POST verilerinin boyutunu belirtir. Özellikle büyük veri gönderme işlemlerinde kullanışlıdır. Örneğin:phpcurl_setopt($ch, CURLOPT_POSTFIELDSIZE, strlen($data));
CURLOPT_VERBOSE
: Bu seçenek, cURL isteğinin ayrıntılı günlük bilgilerini göstermek için kullanılır. Örneğin:phpcurl_setopt($ch, CURLOPT_VERBOSE, true);
CURLOPT_HEADER
: Bu seçenek, yanıtın başlıklarını almak için kullanılır. Yanıtın sadece başlıklarını almak istiyorsanız bu seçeneği true olarak ayarlayabilirsiniz. Örneğin:phpcurl_setopt($ch, CURLOPT_HEADER, true);
CURLOPT_INFILESIZE
: Bu seçenek, yüklenen dosyanın boyutunu belirtir. Özellikle dosya yükleme işlemleri için kullanışlıdır. Örneğin:phpcurl_setopt($ch, CURLOPT_INFILESIZE, filesize("upload.txt"));
CURLOPT_WRITEFUNCTION
: Bu seçenek, yanıtın yazılacağı özel bir işlevi belirtir. Özel bir işlevi kullanarak yanıtı özelleştirmek veya işlemek için kullanılabilir. Örneğin:phpcurl_setopt($ch, CURLOPT_WRITEFUNCTION, "customWriteFunction");
CURLOPT_READFUNCTION
: Bu seçenek, istek verilerini okumak için özel bir işlevi belirtir. Özel bir işlevi kullanarak istek verilerini özelleştirmek veya oluşturmak için kullanılabilir. Örneğin:phpcurl_setopt($ch, CURLOPT_READFUNCTION, "customReadFunction");
CURLOPT_STDERR
: Bu seçenek, cURL hatalarının yazılacağı dosyayı belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_STDERR, fopen("error.log", "w"));
CURLOPT_DNS_CACHE_TIMEOUT
: Bu seçenek, DNS sorgularını önbellekte tutma süresini belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 3600);
CURLOPT_PROXYAUTH
: Bu seçenek, proxy kimlik doğrulama türünü belirtir. Örneğin,CURLAUTH_BASIC
veyaCURLAUTH_NTLM
gibi. Örneğin:phpcurl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
CURLOPT_FILE
: Bu seçenek, yanıtın yazılacağı dosyayı belirtir. Özellikle yanıtı bir dosyaya kaydetmek istediğinizde kullanılır. Örneğin:php$file = fopen("response.txt", "w"); curl_setopt($ch, CURLOPT_FILE, $file);
CURLOPT_PORT
: Bu seçenek, istek yapılacak bağlantı noktasını belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_PORT, 8080);
CURLOPT_TCP_NODELAY
: Bu seçenek, TCP yavaş başlatma seçeneğini belirtir. Özellikle yüksek performans gerektiren uygulamalarda kullanışlıdır. Örneğin:phpcurl_setopt($ch, CURLOPT_TCP_NODELAY, true);
CURLOPT_INTERFACE
: Bu seçenek, gönderilen isteğin belirli bir ağ arabirimini kullanmasını belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_INTERFACE, "eth0");
CURLOPT_COOKIESESSION
: Bu seçenek, çerez oturumu oluşturmayı belirtir. Özellikle çerez oturumlarını yönetmek istediğinizde kullanışlıdır. Örneğin:phpcurl_setopt($ch, CURLOPT_COOKIESESSION, true);
CURLOPT_CAINFO
veCURLOPT_CAPATH
: Bu seçenekler, SSL sertifikası doğrulama için CA dosyası veya dizinini belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_CAINFO, "/path/to/cafile.pem"); curl_setopt($ch, CURLOPT_CAPATH, "/path/to/cadir");
CURLOPT_CERTINFO
: Bu seçenek, SSL sertifikası hakkında ayrıntılı bilgi toplamayı belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_CERTINFO, true);
CURLOPT_SSLCERT
veCURLOPT_SSLKEY
: Bu seçenekler, istemci SSL sertifikası ve özel anahtarını belirtir. Özellikle SSL ile kimlik doğrulama gerektiren isteklerde kullanılır. Örneğin:phpcurl_setopt($ch, CURLOPT_SSLCERT, "/path/to/clientcert.pem"); curl_setopt($ch, CURLOPT_SSLKEY, "/path/to/clientkey.pem");
CURLOPT_SSLCERTPASSWD
: Bu seçenek, istemci SSL sertifikası için şifreyi belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_SSLCERTPASSWD, "mypassword");
CURLOPT_SSLCERTTYPE
: Bu seçenek, SSL sertifikasının türünü belirtir. Örneğin,PEM
veyaDER
gibi. Örneğin:phpcurl_setopt($ch, CURLOPT_SSLCERTTYPE, "PEM");
CURLOPT_SSLKEYTYPE
: Bu seçenek, özel anahtarın türünü belirtir. Örneğin,PEM
veyaDER
gibi. Örneğin:phpcurl_setopt($ch, CURLOPT_SSLKEYTYPE, "PEM");
CURLOPT_SSL_CIPHER_LIST
: Bu seçenek, kabul edilebilir SSL şifrelemelerini belirtir. Örneğin:phpcurl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, "AES128-SHA");
CURLOPT_SSLVERSION
: Bu seçenek, kullanılacak SSL/TLS sürümünü belirtir. Örneğin,CURL_SSLVERSION_TLSv1_2
gibi. Örneğin:phpcurl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
CURLOPT_SSL_VERIFYSTATUS
: Bu seçenek, SSL sertifikasının durumunu doğrulama seçeneğini belirtir. Özellikle SSL sertifikasının geçerliliğini kontrol etmek istediğinizde kullanılır. Örneğin:phpcurl_setopt($ch, CURLOPT_SSL_VERIFYSTATUS, true);
CURLOPT_TIMECONDITION
veCURLOPT_TIMEVALUE
: Bu seçenekler, isteğin koşullu olup olmadığını ve zaman koşulunu ve değerini belirtir. Örneğin, bir belirli bir tarih ve saatteki değişiklikleri kontrol etmek istediğinizde kullanışlıdır. Örneğin:phpcurl_setopt($ch, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE); curl_setopt($ch, CURLOPT_TIMEVALUE, strtotime("2023-01-01 00:00:00"));
CURLOPT_IPRESOLVE
: Bu seçenek, istemci IP çözümleme türünü belirtir. Özellikle IPv4 veya IPv6 tercihinizi belirtmek için kullanılır. Örneğin:phpcurl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
CURLOPT_MAXCONNECTS
: Bu seçenek, aynı anda kurulacak maksimum bağlantı sayısını belirtir. Özellikle çoklu bağlantıları sınırlamak istediğinizde kullanılır. Örneğin:phpcurl_setopt($ch, CURLOPT_MAXCONNECTS, 5);
Bu CURLOPT
sabitleri, cURL kütüphanesini daha fazla kontrol ve özelleştirme sağlayan bir dizi seçenek sunar. İhtiyacınıza ve projenizin gereksinimlerine bağlı olarak bu seçenekleri kullanabilirsiniz.
Hiç yorum yok
Yorum Gönder