cURL ile Birden Fazla Siteye Bağlanma

Bu yazımızda cURL kullanarak birden fazla siteden veri çekmeye değineceğiz. Öncelikle bağlantı kurulacak siteleri belirleyelim.

$urls = array(
);
Yukarıdaki beş siteden verimizi çekeceğiz.
$mh = curl_multi_init();
Birden falza site ile bağlantı kurmak için curl_multi_init() fonksiyonunu kullanıyoruz.
$channels = array();
foreach ($urls as $key => $url) {
    $channels[$key] = curl_init();
    curl_setopt_array($channels[$key], array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ));
    curl_multi_add_handle($mh, $channels[$key]);
}
Genelde tek site ile bağlantı kurarken kullandığımız fonksiyonların başına multi ekliyoruz.
$active = null;
do {
    $status = curl_multi_exec($mh, $active);
}
while ($active && $status == CURLM_OK);
foreach ($channels as $chan) {
    echo curl_multi_getcontent($chan);
    curl_multi_remove_handle($mh, $chan);
    curl_close($chan);
}
 curl_multi_close($mh);

Kodlarımız yukarıdaki şekilde olacaktır. Görüldüğü gibi curl_init fonksiyonu curl_multi_init, curl_close fonksiyonu curl_multi_close olarak değişmiş. Kodlarımızın son halini aşağıda görebilirsiniz.

$urls = array(
);
$mh = curl_multi_init();
$channels = array();
foreach ($urls as $key => $url) {
    $channels[$key] = curl_init();
    curl_setopt_array($channels[$key], array(
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true
    ));
    curl_multi_add_handle($mh, $channels[$key]);
}
$active = null;
do {
    $status = curl_multi_exec($mh, $active);
}
while ($active && $status == CURLM_OK);
foreach ($channels as $chan) {
    echo curl_multi_getcontent($chan);
    curl_multi_remove_handle($mh, $chan);
    curl_close($chan);
}
curl_multi_close($mh);

Bir önceki yazımız olan En Çok Kullanılan PHP Editörler başlıklı makalemizde Aptana, Dreamweaver ve En Güzel PHP Editör hakkında bilgiler verilmektedir.

About This Author

Uzun yıllardır yazılım ile uğraşıyorum. PHP ile başladığım yazılım hayatıma şu an PHP'nin yanında Swift ve Python ile devam ediyorum. Bu güne kadar bir çok proje geliştirdim ve yeni projeler geliştirmeye de devam ediyorum. Bu sitede yazılımseverlere faydalı bilgiler vermeye, yazılım geliştirmeye, öğrendiklerimi paylaşmaya, yeni başlayanlara yol göstermeye ve onlara yardımcı olmaya çalışıyorum.

Post A Reply