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 180 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 0 Yorum

Mysql Frag Finder Kullanımı Defrag İşlemi

Defrag nedir ne işe yarar ? Nasıl Defrag yapabilirim? Fragment ingilizcede parça anlamına gelir. Fragmentation ise parçalanmayı gösterir. Defrag de toplama anlamına gelir. Siz hdd ye bi veri yazarken bunlar

PHP ve MYSQL 0 Yorum

PHP CURL SOCK4 SOCK5 Kullanımı ve Acıklamalı Anlatım

Merhaba bu makalemde turkiyede pek turkce acıklaması olmayan hatta hic diyebilirim php ile curl kutuphanesi sayesinde sock4 ve sock5 kullanımını ornek bir fonksiyonla anlatıcam. Peki nedir bu Sock4 ve Sock5

Web Programlama 0 Yorum

Laravel 5 Intervention Image Resim Boyutlandırma Image Resizer Yüklemek

Laravel 5 ile resim boyutlandırma eklentisini aktif edip kullanıma hazır hale getirmeyi gösterdim video içinde normal yükleme yaparken karşılacağınız hata ve giderilmesi ile ilgili detayıda anlattım.Gereksinimler ile ilgili resmi sitesinde

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.