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ızfalseolarak 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_BASICveyaCURLAUTH_NTLMgibi. Ö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_CAINFOveCURLOPT_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_SSLCERTveCURLOPT_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,PEMveyaDERgibi. Örneğin:phpcurl_setopt($ch, CURLOPT_SSLCERTTYPE, "PEM");CURLOPT_SSLKEYTYPE: Bu seçenek, özel anahtarın türünü belirtir. Örneğin,PEMveyaDERgibi. Ö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_2gibi. Ö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_TIMECONDITIONveCURLOPT_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