PHP ile CURL Kullanımı

PHP ile CURL Kullanımı

Herkese merhaba bu yazıda sizlere PHP dilinde CURL kütüphanesinin kullanımını anlatacağım. CURL bot yapımında sıkça kullanılan bir işlemdir. Şimdi temel olarak kulanımına bakalım.

CURL web protokoleri arasında veri taşıyabilen çok güçlü bir web sistemidir. Web siteleri arasında veri taşımaya yarayan bir sistemdir bu sayede giriş yaptırılması gerekilen yerlerde giriş yaptırılabilir veya herhangi bir api kullanılabilir. CURL ile basit http işlemlerinden çok karmaşık ftp işlemlerine kadar hepsi yapılabilr. Sayfaya sadece POST veya GET ile değer göndererek çok karmaşık işlemleri hızlı bir şekilde yapabilirsiniz.

Şimdide Temel Olarak Nasıl Kullanıldığına Bakalım:

CURL ile ilgili bir işlem yapmadan önce CURL'u başlatmamız gerekmektedir. Başlattıktan sonra istediğimiz işlemleri yapabiliriz. Curl kütüphanesini curl_init(); fonksiyonu ile başlatıyoruz. u fonksiyonu çağırıyoruz ve işlemlerimizi yapıyoruz. Ondan sonra CURL sonlandırma yapıyoruz.

CURL kütüphaneesinin bazı yapılandırma ayarları bulunmakta. Şimdi o ayarlara göz atalım
  • CURLOPT_RETURNTRANSFER :  Verilerin göndericiye nasıl geri döneceğini ayarlar.
  • CURLOPT_CONNECTTIMEOUT :  Bağlantı için bir timeout süresi belirler
  • CURLOPT_TIMEOUT :                   CURL işleminingerçekleşmesi için gereken max. süre.
  • CURLOPT_USERAGENT :              Hedef siteye giderken bir user Agent ile gidilsin diyorsan burayıda doldurmalısın
  • CURLOPT_URL  :                           İşlemin yapılacağı hedef URL
  • CURLOPT_POST :                         İsteğin post olarak gönderilme işlemini kullanırsınız.
  • CURLOPT_POSTFIELDS :            Verileri post ederken post edilecek olan değerlerin listesidir.

Bu bilgileride aldığımıza göre şimdi örnekler yapalım ve konuyu pekiştirelim.


$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://thekodprogram.com');

Yukarıdaki örnekte bir curl dosyası oluşturduk ve işlemin yapılacağı url'in thekodprogram.com olmasını sağladık. Aynı işlemi aşağıdaki gibide yapabiliriz. Sonuçta hedef olduğu için bir sorun olmayacaktır.


$curl = curl_init('http://thekodprogram.com');
Diğer yapılandırma ayarlarınıda yukarıdaki şekilde oluşturup gönderebilirsiniz. Bu verileri göndermenin başka bir yoluda aşağıdaki gibidir : 

$curl = curl_init();
curl_setopt_array($curl, array(
     CURLOPT_RETURNTRANSFER => 1,
     CURLOPT_URL => 'http://thekodprogram.com'
));

Yukarıda gördüğümüz gibi oluşturduğumuz CURL nesnemizin içerisine göndermek istediğimiz değerleri bir dizi halinde gönderdik ve o şekilde çalışabilir hale getirdik.

Peki göndereceğimiz verileri hazırladık bunları nasıl göndereceğimizi konuşmayacağızmı dediğinizi duyar gibiyim. Şimdi ona bakalım.

curl_exec() metodu ile oluşturduğumuz CURL nesnemizi çalıştırırız ve istediğimiz işlemlerin yapılmasını bekleriz. işlemini tamamlayınca bize true veya false olarak bir değer döndürür ve bizde bu değere göre işlem yapılmışmı yapılmamışmı anlarız.


$sonuc = curl_exec($curl);

Yukarıdaki şekilde çalıştırılır ve $sonuc değişkenine atılır.

Dönen değer eğer:
  • true olursa işlem başarılı bir şekilde yapılmıştır.
  • false olursa işlem sırasında hatalar alınmıştır ve işlem yapılamamaıştır.

Eğer yukarıdan sonuç gelirse gelen sonuç sitenin içerisindeki veridir. Mesela bir JSON veya XML veya CSV tarzında bir veri olabilir. Bu veriyi biz okuyarak istediğimiz işlemi yaparız.

işlemimizi bitirdikten sonra curl işlemini curl_close(); fonksiyonu ile sonlandırmalıyız.


// cURL başlatılıyor
$curl = curl_init();
// aşağıda bazı yapılandırma ayarları ekleyelim
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://thekodprogram.com/',
    CURLOPT_USERAGENT => 'Mozilla Firefox 5.0'
));
// aşağıda cURL işlemini başlatıyortuz
$resp = curl_exec($curl);
// ve işlem sonlanınca cURL oturumunu sonlandırıyoruz.
curl_close($curl);
Şimdi birde veriyi post etmek işlemine bakalım : Veriyi post etmek için yapılandırma ayarlarında post özelliğini açacağız ve post edeceğimiz verileri bir dizi halinde oluşturup yollayacağız.

// cURL oluşturuluyor
$curl = curl_init();
// Bazı ayarlamalar yapılıyor
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://thekodprogram.com',
    CURLOPT_USERAGENT => 'UserAgentAdı',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => array(
        username=> 'burakhamdi',
        password=> '123456'
    )
));
// Oluşturduğumuz CURL kütüphanesini çalıştırıyoruz
$resp = curl_exec($curl);
// ve cURL oturumunu sonlandırıyoruz
curl_close($curl);

Peki herhangi bir hata aldığımızda bu hataların bir kodu varmıdır diye sorarsanız eğer onuda aşağıdaki şekilde kontrol edebiliriz.


if(!curl_exec($curl)){
    die('Hata: "' . curl_error($curl) . '" - Kodu: ' . curl_errno($curl));
}

Yukarıdaki şekilde dönen hataları kontrol ettirebiliriz.

Bu şekilde basit olarak CURL nedir ve ne iş yapar bahsettik. PHP'nin bana göre en büyük nimetlerindendir kendisi. BU yüzden kullanmanızı ve kesinlikle daha derinlere inerek öğrenmenizi tavsiye ediyorum.

Bu yazımızda bu kadar arkadaşlar. Takipte Kalın

Burak Hamdi TUFAN


Tags


Share this Post

Send with Whatsapp

Post a Comment

Success! Your comment sent to post. It will be showed after confirmation.
Error! There was an error sending your comment. Check your inputs!

Comments

  • There is no comment. Be the owner of first comment...