Curl Kütüphanesi

Curl kütüphanesi, PHP'deki curl kütüphanesini kullanarak bir ya da daha fazla sitenin, farklı protokollerle bağlantı kurmasını ve veri iletişimini sağlar.

  1. GET Methodu ile İstek Gönderimi » get()
  2. POST Methodu ile İstek Gönderimi » post()
  3. PUT Methodu ile İstek Gönderimi » put()
  4. DELETE Methodu ile İstek Gönderimi » delete()
  5. Head Methodu ile İstek Gönderimi » head()
  6. İstek Sonucunda Dönen Header Verisini Okuma » responseHeader()
  7. İstek Sonucunda Dönen İçeriği Okuma » responseBody()
  8. User Agent Tanımlama » setUserAgent()
  9. Referrer Tanımlama » setReferrer()
  10. Header Tanımlama » setHeader()
  11. Oturum Seçeneklerini Tanımlama » setOptions()
  12. Hataları Görme » getError()

GET Methodu ile İstek Gönderimi

Bir web sunucusuna GET methodu ile istek göndermek için get() methodu kullanılır. İstek gönderilecek url ve eğer varsa url parametrelerinin yer aldığı array tipinde bir değişken parametre olarak verilir.

Parametre Veri Tipi Açıklama
$url String İstek gönderilecek url
$params Array URL parametreleri
// http://google.com adresine get methodu ile istek gönderir.
Curl::get('google.com'); 

// http://google.com adresine "test" parametresi ile istek gönderir.
Curl::get('google.com?q=test'); 

// http://google.com adresine "test" ve "deger" parametreleri ile istek gönderir.
Curl::get('google.com?q=test', ['anahtar' => 'deger']); 

// Site içeriğini ekrana basar.
echo Curl::responseBody(); 

// İstek sonucu dönen header verisini ekrana basar.
print_r(Curl::responseHeader()); 

Yukarıdaki örnek, aşağıdakine benzer bir çıktı verecektir;


<head>
<title>Google.com</title>
</head>
<body>
İçerikteki html kodları
</body>
</html>

Array
(
    [Http-Version] => 1.0
    [Status-Code] => 200
    [Status] => 200 OK
    [Cache-Control] => private
    [Content-Type] => text/html; charset=ISO-8859-1
    [Date] => Wed, 01 Mar 2017 10:39:48 GMT
    [Server] => gws
    [Connection] => close
)

POST Methodu ile İstek Gönderimi

Bir web sunucusuna POST methodu ile istek göndermek için post() methodu kullanılır. İstek gönderilecek url ve post edilecek verilerin bulunduğu array tipinde bir değişken parametre olarak verilir.

Parametre Veri Tipi Açıklama
$url String İstek gönderilecek url
$params Array Post edilecek veriler
// test.com/login adresine, verilen parametrelerle birlikte POST isteği gönderir.
Curl::post('test.com/login', ['username' => 'johndoe', 'userpass' => '1234']);

PUT Methodu ile İstek Gönderimi

Bir web sunucusuna PUT methodu ile istek göndermek için put() methodu kullanılır. İstek gönderilecek url ve verilerin bulunduğu array tipinde bir değişken parametre olarak verilir.

Parametre Veri Tipi Açıklama
$url String İstek gönderilecek url
$params Array Gönderilecek veriler
// http://test.com/page sayfasına deger parametresi ile put isteği gönderir.
Curl::put('test.com/page', ['anahtar' => 'deger']);

DELETE Methodu ile İstek Gönderimi

Bir web sunucusuna DELETE methodu ile istek göndermek için delete() methodu kullanılır. İstek gönderilecek url ve verilerin bulunduğu array tipinde bir değişken parametre olarak verilir.

Parametre Veri Tipi Açıklama
$url String İstek gönderilecek url
$params Array Gönderilecek veriler
// http://test.com/delete sayfasına deger parametresi ile delete isteği gönderir.
Curl::delete('test.com/delete', ['anahtar' => 'deger']);

HEAD Methodu ile İstek Gönderimi

Head methodu ile gönderilen HTTP istekleri, GET methodu ile aynıdır. Tek fark, HEAD methodunda, istek gönderilen sunucu sadece header bölümündeki bilgileri döndürür.

head() methodu ile kullanılır. İstek gönderilecek url ve verilerin bulunduğu array tipinde bir değişken parametre olarak verilir.

Parametre Veri Tipi Açıklama
$url String İstek gönderilecek url
$params Array Gönderilecek veriler
// http://google.com adresine "test" ve "deger" parametreleri ile head isteği gönderir.
Curl::head('google.com?q=test', ['anahtar' => 'deger']); 

İstek Sonucunda Dönen Header Verisini Okuma

Herhangi bir method ile gönderilen istek sonucunda, sunucu tarafından dönen header bilgisini okumak için responseHeader() methodu kullanılır. Parametre verilmezse tüm header bilgisini array tipinde döndürür. Belirli bir header bilgisine erişmek için, istenen haeder başlığı parametre olarak verilir.

Parametre Veri Tipi Açıklama
$key String Header verisi (Default: null)
// http://google.com adresine "test" ve "deger" parametreleri ile istek gönderir.
Curl::get('google.com?q=test', ['anahtar' => 'deger']);

// Gönderilen istek sonucunda dönen header bilgisini ekrana basar
print_r(Curl::responseHeader());

// Header bilgisinde bulunan 'Status-Code' bilgisini ekrana basar
echo Curl::responseHeader('Status-Code');

İstek Sonucunda Dönen İçeriği Okuma

Herhangi bir method ile gönderilen istek sonucunda, sunucu tarafından dönen içeriği okumak için responseBody() methodu kullanılır.

// http://google.com adresine "test" ve "deger" parametreleri ile istek gönderir.
Curl::get('google.com?q=test', ['anahtar' => 'deger']);

// Gönderilen istek sonucunda dönen içeriği ekrana basar
echo Curl::responseBody();

User Agent Tanımlama

Herhangi bir method ile gönderilecek HTTP isteğine user agent tanımlamak için setUserAgent() methodu kullanılır. User agent verisini parametre olarak alır.

Parametre Veri Tipi Açıklama
$user_agent String User agent verisi
Curl::setUserAgent('Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0')

Referrer Tanımlama

Herhangi bir method ile gönderilecek HTTP isteğine referrer (yönlendirici) tanımlamak için setReferrer() methodu kullanılır. Referrer verisini parametre olarak alır.

Parametre Veri Tipi Açıklama
$referrer String Referrer verisi
Curl::setReferrer('www.titanphp.com');

Header Tanımlama

Herhangi bir method ile gönderilecek HTTP isteğin header (başlık) bilgilerini tanımlamak için setHeader() methodu kullanılır. Header adı ve içeriği ayrı parametrelerde verilebileceği gibi, tüm header bilgisinin bulunduğu bir array de parametre olarak verilebilir.

Parametre Veri Tipi Açıklama
$header String|Array Header adı|Header dizisi
$value String Header içeriği
// Ayrı parametreler ile kullanım
Curl::setHeader('Content-type', 'text/xml;charset="utf-8"');

// Tek parametre ile kullanım
Curl::setHeader([
	'Content-type'  => 'text/xml;charset="utf-8"', 
    'Accept'        => 'text/xml', 
    'Cache-Control' => 'no-cache', 
    'Pragma'        => 'no-cache'
]);

Oturum Seçeneklerini Tanımlama

HTTP isteğinde sırasındaki Curl oturum tanıtıcısında seçenek tanımlamak için setOptions() methodu kullanılır. İstek gönderilmeden önce yapılmalıdır. Seçeneğin adı ve içeriği ayrı parametrelerde verilebileceği gibi, tüm seçenekler yer aldığı bir array de parametre olarak verilebilir.

Parametre Veri Tipi Açıklama
$option String|Array Seçenek adı|Seçenek dizisi
$value String Seçenek içeriği
// Ayrı parametreler ile kullanım
Curl::setOptions('CURLOPT_RETURNTRANSFER', 1);

// Tek parametre ile kullanım
Curl::setOptions([
	'CURLOPT_RETURNTRANSFER'  => 1, 
    'CURLOPT_TIMEOUT'         => 60, 
    'CURLOPT_FOLLOWLOCATION'  => 1
]);

Hataları Görme

Curl ile aktarım işlemi sırasında oluşan hataları görmek için getError() methodu kullanılır.

echo Curl::getError();