Curl Plugin

Curl plugini, 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.

Plugini Dahil Etmek

Curl plugini, controller içerisinde aşağıdaki şekilde uygulamaya dahil edilir;

$this->load->plugin('curl');

GET Methodu ile İstek Gönderimi

Bir web sitesine 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ığı bir dizi değişken parametre olarak verilir.

Parametre Veri Tipi
$url string
$params array
// Örnek kullanım
$this->curl->get('google.com'); // http://google.com adresine get methodu ile istek gönderir.
// ya da
$this->curl->get('google.com?q=test'); // http://google.com adresine "test" parametresi ile istek gönderir.
// ya da 
$this->curl->get('google.com?q=test', ['anahtar' => 'deger']); // http://google.com adresine "test" ve "deger" parametreleri ile istek gönderir.

echo $this->curl->responseBody; // Site içeriğini ekrana basar.
print_r($this->curl->responseHeader); // İstek sonucu dönen header verisini ekrana basar.

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

<html>
<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 sitesine POST methodu ile istek göndermek için post() methodu kullanılır. İstek gönderilecek url ve post edilecek verilerin bulunduğu bir dizi değişken parametre olarak verilir.

Parametre Veri Tipi
$url string
$params array
// test.com/login adresine, verilen parametrelerle birlikte POST isteği gönderir.
$this->curl->post('test.com/login', ['username' => 'johndoe', 'userpass' => '1234']);

PUT Methodu ile İstek Gönderimi

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

Parametre Veri Tipi
$url string
$params array
// http://test.com/page sayfasına deger parametresi ile put isteği gönderir.
$this->curl->put('test.com/page', ['anahtar' => 'deger']);
            

DELETE Methodu ile İstek Gönderimi

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

Parametre Veri Tipi
$url string
$params array
// http://test.com/delete sayfasına deger parametresi ile delete isteği gönderir.
$this->curl->delete('test.com/delete', ['anahtar' => 'deger']);
            

User Agent Tanımlama

HTTP isteğinde kullanılacak "User-Agent: "başlığının içeriği $userAgent değişkeni ile belirlenir. İstek gönderilmeden önce yapılmalıdır.

// Google Chrome tarayıcısına ait örnek bir user agent bilgisi
$this->curl->userAgent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7';

Referer Tanımlama

HTTP isteğinde kullanılacak "Referer: " (hangi siteden istek yapıldığını belirtir) başlığının içeriği $referer değişkeni ile belirlenir. İstek gönderilmeden önce yapılmalıdır.

$this->curl->referer = 'test.com';

HTTP isteğinde gönderilecek header (başlık alanı) bilgiler $headers dizi değişkeni ile belirlenir. İstek gönderilmeden önce yapılmalıdır.

$this->curl->headers = [ 
    "Content-type"  => "text/xml;charset=\"utf-8\"", 
    "Accept"        => "text/xml", 
    "Cache-Control" => "no-cache", 
    "Pragma"        => "no-cache"
];

HTTP isteğinde sırasındaki Curl oturumunun özellikleri $options dizi değişkeni ile belirlenir. İstek gönderilmeden önce yapılmalıdır.

$this->curl->options = [ 
    "CURLOPT_RETURNTRANSFER"  => 1, 
    "CURLOPT_TIMEOUT"         => 60, 
    "CURLOPT_FOLLOWLOCATION"  => 1
];