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 126 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

PHP ve Mysql Egitim Seti Görsel

Çizgi TAGEM tarafından çekilmiş olan MySQL veritabanı ve PHP temelleri eğitim setinin YouTube‘a yüklenmiş videolarını, hem haberdar olmanız hem de hızlı bir erişim sağlamanız için bir araya topladım. Bu eğitim

PHP ve MYSQL 0 Yorum

Laravel Route Cache Kullanımı

Laravel 4.X yada 5.X sürümlerinde çeşitli cache(önbellek) yapma işlemleri bulunmaktadır.En basit yolla projenizi cache yapıp açılış hızlarını daha iyi bir duruma getirebilirsiniz.Bidiğiniz üzere Laravel ile orta ölçek ve üstü projelerde

Web Programlama 11 Yorum

PHP Curl Facebook Video Url Almak (Parse URL)

PHP curl ile facebook videolarının indirme linkini almak icin yazdıgım parse url kodları peki bu ne işe yarayacak diyebilirsiniz bu betik yanında curl dosya indirme fonksiyonu kullanıp videoları bilgisayarınıza yada

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