Yazılım Eğitim

Yeni Haberler

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:

  1. CURLOPT_URL: İstek yapılacak URL'i belirtir.
  2. CURLOPT_RETURNTRANSFER: Yanıtın bir değişkende saklanmasını sağlar.
  3. CURLOPT_SSL_VERIFYPEER: SSL sertifikasının doğrulanıp doğrulanmayacağını belirtir.
  4. CURLOPT_SSL_VERIFYHOST: SSL sertifikasının host adı ile doğrulanıp doğrulanmayacağını belirtir.
  5. CURLOPT_CUSTOMREQUEST: Özel bir HTTP istek yöntemi belirtir (örneğin, PUT veya DELETE).
  6. CURLOPT_POSTFIELDS: POST isteği ile gönderilecek veriyi belirtir.
  7. CURLOPT_HTTPHEADER: Özel HTTP başlıklarını belirtir.
  8. CURLOPT_CONNECTTIMEOUT: Sunucuya bağlanma zaman aşım süresini belirtir.
  9. CURLOPT_TIMEOUT: İstek zaman aşım süresini belirtir.
  10. CURLOPT_FOLLOWLOCATION: HTTP 3xx yönlendirmelerini otomatik olarak takip etmeyi belirtir.
  11. CURLOPT_MAXREDIRS: İstek sırasında izin verilen maksimum yönlendirme sayısını belirtir.
  12. CURLOPT_POSTREDIR: POST isteği gönderirken, yönlendirmeleri nasıl işleyeceğini belirtir.
  13. CURLOPT_USERAGENT: Kullanıcı ajanı başlığını belirtir.
  14. CURLOPT_COOKIE: İstek sırasında gönderilecek çerezleri belirtir.
  15. CURLOPT_COOKIEFILE ve CURLOPT_COOKIEJAR: Çerez dosyalarını belirtir.
  16. CURLOPT_PROXY: HTTP proxy sunucusunu belirtir.
  17. CURLOPT_UPLOAD: Bir dosya yükleme işlemi yapılıyorsa bu seçenek kullanılır.
  18. CURLOPT_AUTOREFERER: Otomatik olarak referer (HTTP başlığında "Referer" olarak geçer) başlığını ayarlar.
  19. CURLOPT_REFERER: Referer (HTTP başlığında "Referer" olarak geçer) başlığını belirtir.
  20. CURLOPT_ENCODING: Kabul edilebilir içerik sıkıştırma yöntemlerini belirtir.
  21. CURLOPT_USERPWD: Sunucu ile kimlik doğrulama gerektiren bir isteği yapıyorsanız, kullanıcı adı ve şifreyi belirtir.
  22. CURLOPT_PROXYUSERPWD: HTTP proxy sunucusu için kimlik doğrulama gerektiriyorsa, proxy kimlik bilgilerini belirtir.
  23. CURLOPT_PROXYPORT: HTTP proxy sunucusunun bağlantı noktasını belirtir.
  24. CURLOPT_PROXYTYPE: Kullanılan proxy türünü belirtir (örneğin, HTTP, SOCKS4, SOCKS5).
  25. CURLOPT_POSTFIELDSIZE: POST verilerinin boyutunu belirtir.
  26. CURLOPT_VERBOSE: cURL isteğinin ayrıntılı günlük bilgilerini göstermek için kullanılır.
  27. CURLOPT_HEADER: Yanıt başlıklarını almak için kullanılır.
  28. CURLOPT_INFILESIZE: Yüklenen dosyanın boyutunu belirtir.
  29. CURLOPT_WRITEFUNCTION: Yanıtın yazılacağı özel bir işlevi belirtir.
  30. CURLOPT_READFUNCTION: İstek verilerini okumak için özel bir işlevi belirtir.
  31. CURLOPT_STDERR: cURL hatalarının yazılacağı dosyayı belirtir.
  32. CURLOPT_DNS_CACHE_TIMEOUT: DNS sorgularını önbellekte tutma süresini belirtir.
  33. CURLOPT_PROXYAUTH: Proxy kimlik doğrulama türünü belirtir.
  34. CURLOPT_FILE: Yanıtın yazılacağı dosyayı belirtir.
  35. CURLOPT_PORT: İstek yapılacak bağlantı noktasını belirtir.
  36. CURLOPT_TCP_NODELAY: TCP yavaş başlatma seçeneğini belirtir.
  37. CURLOPT_INTERFACE: Gönderilen isteğin belirli bir ağ arabirimini kullanmasını belirtir.
  38. CURLOPT_COOKIESESSION: Çerez oturumu oluşturmayı belirtir.
  39. CURLOPT_CAINFO ve CURLOPT_CAPATH: SSL sertifikası doğrulama için CA dosyası veya dizinini belirtir.
  40. CURLOPT_CERTINFO: SSL sertifikası hakkında ayrıntılı bilgi toplamayı belirtir.
  41. CURLOPT_SSLCERT ve CURLOPT_SSLKEY: İstemci SSL sertifikası ve özel anahtarını belirtir.
  42. CURLOPT_SSLCERTPASSWD: İstemci SSL sertifikası için şifreyi belirtir.
  43. CURLOPT_SSLCERTTYPE: SSL sertifikasının türünü belirtir.
  44. CURLOPT_SSLKEYTYPE: Özel anahtarın türünü belirtir.
  45. CURLOPT_SSL_CIPHER_LIST: Kabul edilebilir SSL şifrelemelerini belirtir.
  46. CURLOPT_SSLVERSION: Kullanılacak SSL/TLS sürümünü belirtir.
  47. CURLOPT_SSL_VERIFYSTATUS: SSL sertifikasının durumunu doğrulama seçeneğini belirtir.
  48. CURLOPT_TIMECONDITION ve CURLOPT_TIMEVALUE: İstek koşullu olabilir ve zaman koşulunu ve değerini belirtir.
  49. CURLOPT_IPRESOLVE: İstemci IP çözümleme türünü belirtir.
  50. CURLOPT_MAXCONNECTS: Aynı anda kurulacak maksimum bağlantı sayısını belirtir.

  1. CURLOPT_URL: Bu seçenek, yapılan HTTP isteğinin hedef URL'sini belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_URL, "https://www.example.com");
  2. 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:

    php
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  3. CURLOPT_SSL_VERIFYPEER: Bu seçenek, SSL sertifikasının doğrulanıp doğrulanmayacağını belirtir. Doğrulama yapılmasını istemiyorsanız false olarak ayarlayabilirsiniz (güvenlik riski taşır). Örneğin:

    php
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  4. 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:

    php
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  5. 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:

    php
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
  6. 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);
  7. 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);
  8. 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:

    php
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  9. 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:

    php
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
  10. 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:

    php
    curl_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.

  1. CURLOPT_USERPWD: Bu seçenek, sunucu ile kimlik doğrulama gerektiren bir isteği yaparken kullanıcı adı ve şifreyi belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_USERPWD, "username:password");
  2. CURLOPT_PROXYUSERPWD: Bu seçenek, HTTP proxy sunucusu için kimlik doğrulama gerektiriyorsa, proxy kimlik bilgilerini belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, "proxyuser:proxypassword");
  3. CURLOPT_PROXYPORT: Bu seçenek, HTTP proxy sunucusunun bağlantı noktasını belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
  4. CURLOPT_PROXYTYPE: Bu seçenek, kullanılan proxy türünü belirtir. Örneğin, HTTP, SOCKS4 veya SOCKS5 gibi. Örneğin:

    php
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
  5. CURLOPT_POSTFIELDSIZE: Bu seçenek, POST verilerinin boyutunu belirtir. Özellikle büyük veri gönderme işlemlerinde kullanışlıdır. Örneğin:

    php
    curl_setopt($ch, CURLOPT_POSTFIELDSIZE, strlen($data));
  6. CURLOPT_VERBOSE: Bu seçenek, cURL isteğinin ayrıntılı günlük bilgilerini göstermek için kullanılır. Örneğin:

    php
    curl_setopt($ch, CURLOPT_VERBOSE, true);
  7. 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:

    php
    curl_setopt($ch, CURLOPT_HEADER, true);
  8. 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:

    php
    curl_setopt($ch, CURLOPT_INFILESIZE, filesize("upload.txt"));
  9. 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:

    php
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, "customWriteFunction");
  10. 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:

    php
    curl_setopt($ch, CURLOPT_READFUNCTION, "customReadFunction");
  11. CURLOPT_STDERR: Bu seçenek, cURL hatalarının yazılacağı dosyayı belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_STDERR, fopen("error.log", "w"));
  12. CURLOPT_DNS_CACHE_TIMEOUT: Bu seçenek, DNS sorgularını önbellekte tutma süresini belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 3600);
  13. CURLOPT_PROXYAUTH: Bu seçenek, proxy kimlik doğrulama türünü belirtir. Örneğin, CURLAUTH_BASIC veya CURLAUTH_NTLM gibi. Örneğin:

    php
    curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
  14. 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);
  15. CURLOPT_PORT: Bu seçenek, istek yapılacak bağlantı noktasını belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_PORT, 8080);
  16. 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:

    php
    curl_setopt($ch, CURLOPT_TCP_NODELAY, true);
  17. CURLOPT_INTERFACE: Bu seçenek, gönderilen isteğin belirli bir ağ arabirimini kullanmasını belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_INTERFACE, "eth0");
  18. CURLOPT_COOKIESESSION: Bu seçenek, çerez oturumu oluşturmayı belirtir. Özellikle çerez oturumlarını yönetmek istediğinizde kullanışlıdır. Örneğin:

    php
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
  19. CURLOPT_CAINFO ve CURLOPT_CAPATH: Bu seçenekler, SSL sertifikası doğrulama için CA dosyası veya dizinini belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cafile.pem"); curl_setopt($ch, CURLOPT_CAPATH, "/path/to/cadir");
  20. CURLOPT_CERTINFO: Bu seçenek, SSL sertifikası hakkında ayrıntılı bilgi toplamayı belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_CERTINFO, true);
  21. CURLOPT_SSLCERT ve CURLOPT_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:

    php
    curl_setopt($ch, CURLOPT_SSLCERT, "/path/to/clientcert.pem"); curl_setopt($ch, CURLOPT_SSLKEY, "/path/to/clientkey.pem");
  22. CURLOPT_SSLCERTPASSWD: Bu seçenek, istemci SSL sertifikası için şifreyi belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_SSLCERTPASSWD, "mypassword");
  23. CURLOPT_SSLCERTTYPE: Bu seçenek, SSL sertifikasının türünü belirtir. Örneğin, PEM veya DER gibi. Örneğin:

    php
    curl_setopt($ch, CURLOPT_SSLCERTTYPE, "PEM");
  24. CURLOPT_SSLKEYTYPE: Bu seçenek, özel anahtarın türünü belirtir. Örneğin, PEM veya DER gibi. Örneğin:

    php
    curl_setopt($ch, CURLOPT_SSLKEYTYPE, "PEM");
  25. CURLOPT_SSL_CIPHER_LIST: Bu seçenek, kabul edilebilir SSL şifrelemelerini belirtir. Örneğin:

    php
    curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, "AES128-SHA");
  26. CURLOPT_SSLVERSION: Bu seçenek, kullanılacak SSL/TLS sürümünü belirtir. Örneğin, CURL_SSLVERSION_TLSv1_2 gibi. Örneğin:

    php
    curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
  27. 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:

    php
    curl_setopt($ch, CURLOPT_SSL_VERIFYSTATUS, true);
  28. CURLOPT_TIMECONDITION ve CURLOPT_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:

    php
    curl_setopt($ch, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE); curl_setopt($ch, CURLOPT_TIMEVALUE, strtotime("2023-01-01 00:00:00"));
  29. 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:

    php
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
  30. 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:

    php
    curl_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