biomooj adlı üyeden alıntı: mesajı görüntüle
sitenin açılma süresi önemli değil, önemli olan paralel olarak bağlanması. foreach ile diziyi döngüye aldığımızda dizinin ilk elemanındaki sitede işlemler bitene kadar ikinci elemana geçmiyor. fakat aynı anda dizideki 10 siteyi işleme alırsa zamandan kazanmış olacağız. diğer türlü düşünün ki elinizde 100,000 adet bağlanılacak url var, 1 url için geçen zaman 7sn olsun. 7/24 bot çalışırsa tam 8 günde işlemler biter, tabi bu da mümkün olmuyor çünkü kaynak sitedeki bir sorunda bot duruyor zaten (sunucunun restart edilmesi gibi..) , bu durumlarda manuel kontrol edip botu kaldığı yerden devam ettirmen gerekiyor . bu da işlemin çok çok uzaması anlamına geliyor.. biraz yabancı kaynaklara göz attım, dediğim işlemin curl_multi_exec ile yapılabildiğini gördüm, henüz üzerinde çalışıyorum..

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 19:16:15 -->-> Daha önceki mesaj 18:46:06 --

benzer arayışı olanlar için örnek uygulamayı paylaşıyorum;

$urls = array
(
    0 => 'https://www.r10.net',
    1 => 'http://www.imdb.com', 
    2 => 'http://www.yahoo.com',
);

$mh = curl_multi_init();
$handles = array();

foreach ($urls as $url)
{
    $handles[$url] = curl_init($url);

    curl_setopt($handles[$url], CURLOPT_TIMEOUT, 0);
    curl_setopt($handles[$url], CURLOPT_AUTOREFERER, true);
    curl_setopt($handles[$url], CURLOPT_FAILONERROR, true);
    curl_setopt($handles[$url], CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($handles[$url], CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handles[$url], CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($handles[$url], CURLOPT_SSL_VERIFYPEER, false);

    curl_multi_add_handle($mh, $handles[$url]);
}

$running = null;

do {
    curl_multi_exec($mh, $running);
    //usleep(200000);
} while ($running > 0);

foreach ($handles as $key => $value)
{
    $handles[$key] = false;

    if (curl_errno($value) === 0)
    {
        $handles[$key] = curl_multi_getcontent($value);
    }

    curl_multi_remove_handle($mh, $value);
    curl_close($value);
}

curl_multi_close($mh);

echo '<pre>';
print_r(array_map('htmlentities', $handles));
echo '</pre>';
Bu şekilde kullanarak phpnin işlem süresini kısaltmaktan ziyade her url için bağlantı süresini tek tek beklemektense 10 urlye aynı anda bağlantı yapacağı için işlem 10 kat hızlanır. Güzel yöntem.