PHP CURL Multi Kullanımı ve Detayları Thread Yapımı

PHP CURL Multi Kullanımı ve Detayları Thread Yapımı

curl-multi-0.2[1]Merhaba arkadaslar bu dökümanımda sizlere curl’ün daha hızlı calışması yani bir işlemi birden fazla kaynak kullanarak yapmasını açıklayacağım.

Öncelikle kullanacagımız curl komutlarını yazalım ve açıklayalım.

curl_multi_init()                     :   Çok sayıda cURL tanıtıcısının aynı anda işlem görmesini sağlar.
curl_multi_add_handle()        :   Yeni bir çoklu cURL tanıtıcısı döndürür
curl_multi_exec()                   :   Her tanıtıcıyı işleme sokar
curl_multi_getcontent()          :    Belirtilen tanıtıcı için CURLOPT_RETURNTRANSFER seçeneği etkinse tanıtıcının içeriğini bir dizge olarak döndürür.
curl_multi_remove_handle()  :   Bir tekil tanıtıcıyı bir çoklu tanıtıcıdan siler.
curl_multi_close()                   :   Çoklu tanıtıcıyı kapatır.

Curl multi için kullanacağımız tüm komutları yazdık ve açıkladık.Şimdir bir örnekte bunları kullanarak devam edelim yaptıgımız işlemleride acıklayalım..

function WHM($data) {
global $sayi;
$curlle = array();
$sonuc = array();
$yer_tutucu = curl_multi_init();//curl multi oturumunu başlat
for($i=0;$i<5$i++){// i degiskeni için 5 adet thread aç  ve dizi degiskene aktar
$curlle[$i] = curl_init(); //tekli curl oturumu acıyoruz ve coklu oturumla birleştiriyoruz
curl_setopt($curlle[$i], CURLOPT_URL, $data);//Açacagımız url yi belirliyoruz.
curl_setopt($curlle[$i], CURLOPT_RETURNTRANSFER, 1);//Transfer acık
curl_setopt($curlle[$i], CURLOPT_USERAGENT,   “Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4”);
curl_setopt($curlle[$i], CURLOPT_COOKIEJAR, dirname(__FILE__).’/cookie.txt’); //Cookie kaydı
curl_setopt($curlle[$i], CURLOPT_COOKIEFILE, dirname(__FILE__).’/cookie.txt’); //Cookie Çerez kaydı
curl_setopt($curlle[$i], CURLOPT_AUTOREFERER, 1); //otomatik referer site ataması
curl_setopt($curlle[$i], CURLOPT_CONNECTTIMEOUT, 10);//Baglantı zaman aşımı
curl_multi_add_handle($yer_tutucu, $curlle[$i]);//Çoklu curl tanıtıcıyı döndür
}

$aktif= null;
do {
curl_multi_exec($yer_tutucu, $aktif);//tüm tanıtıcılar icin işlemi başlat
}
while ($aktif> 0);
for ($x=0;$x<$sayi;$x++) {
$html=curl_multi_getcontent($curlle[$x]);//returntransfer etkinse işlemi döndür
//echo $html;
$sonuc[$x] = $html;
curl_multi_remove_handle($yer_tutucu, $curlle[$x]);//tekil işlemi sil
}
curl_multi_close($yer_tutucu);     //coklu oturumu kapat

return $sonuc;

}

Tüm yaptıgımız işlemlerin yanında açıklamaları mevcut bu fonksiyonu kullarak istediğiniz coku işlemi curl ile yapabilirsiniz.Takıldığınız bir işlem yada anlamadığınız herseyi konu altında sorabilirsiniz.Curl ün bu işlevi ile ilgili detaylı anlatım türkçe olarak yoktu umarım faydalı olmuştur.

Sonraki Php İf Deyiminin Alternatif Kullanımı ve Kullanılan Komutlar

Yazar hakkında

keykubad
keykubad 136 Gönderiler

2012 yılında yeni kimliği ve yeni bilgilerle sizlere teknoloji,web programlama,tasarim,güvenlik,internet ve programlar hakkında detaylı bilgiler vermek amaçlı kurulmuş kişisel web sayfamdır.

Yazara ait tüm yazılar

Diğer yazılarımız

PHP ve MYSQL 1Yorum

Php İf Deyiminin Alternatif Kullanımı ve Kullanılan Komutlar

Merhaba arkadaslar php’de if koşulunu tüm php kodlama yapan arkadaslar bilir ama eskiden PHP 3 döneminde kullanılan ve alternatif hale gelen if kullanımını sizlere aktarıcam şimdiki editörlerde dikkate alındığında kullanımı

Web Programlama 0 Yorum

Laravel 5 Basit Helper Sınıfı Ekleme

Kendi özgemiş projemde kullandığım ve blade template motoru echo metodu olan {{ }} taglarındaki türkçe karakter problemi için projemde kullanırken kendim keşfetmiştim basit ve etkili bir yoldur. Laravel ile ilgili

PHP ve MYSQL 1Yorum

Flash Oyun Botu Açık Kaynak Kodu Napius V2

Merhabalar sizlere kendi kodladığım ve içinde kesinlikle şifreleme olmayan oyunoyna.com sitesinin botunu veriyorum.Yazılım Napius flash oyun scriptine uygun hazırlanmıştır. Özellikleri 1- Swf ve resim sunucuya çekilecekmi belirleme. 2-Oyunun editör seçini

4 Yorum

    • keykubad
      Mayıs 14, 21:01 Yanıtla

      Neyi çalışmıyor arkadaşım ? yaz ne gibi bir sorun çıktğını yardımcı olayım..

  1. Emre
    Mayıs 20, 10:34 Yanıtla

    Kardeş merhabalar kodda ufak tefek noktalama hatası var onun haricinde kod çalışıyor bir sorun yok emeğine sağlık. Şimdi bu kodu çalıştırma ile ilgili bir örnek vererek açıklayabilir misin?

    Aynı anda iki işlem yapılacağı zaman New Thread nasıl açılacak işlem nasıl yapılacak.

    Örneğin sayfada bir link var ve linkde pdf download edilecek basınca pdf iniyor fakat pdf indirme işlemi bitmeyene kadar sayfada başka linklere tıklanamıyor. Bunu thread ile nasıl yapabiliriz. Senin yazıdğın bu kodla nasıl birleştireceğim. Bir örnek vererek açıklarsan sevinirim. İyi çalışmalar dilerim

    • keykubad
      Eylül 06, 14:58 Yanıtla

      Merhaba Arkadaşım bu sadece tek işlem için hızlı bir şekilde çalışma mantıgı yapmaktadır. Dediğin tarz işlemler için .net kullanmanız gerekiyor.

Cevap bırakın

This site uses Akismet to reduce spam. Learn how your comment data is processed.