adursun adlı üyeden alıntı: mesajı görüntüle
Botun içerik çekmesinin uzun sürmesinin sebebi php nin satır satır işlemesi değil hedef sitenin açılma süresidir. Fazla döngü yoksa php üzerine düşen işi milisaniyeler içinde yapar zaten dolayısıyla bahsettiğiniz gibi süreyi onda birine düşürmek mümkün değil
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>';