Özür dilerim, ben aslında bu soruyu defalarca sordum, ama oldukça cevapları anladım hiç.
İşte benim geçerli kod:
while($resultSet = mysql_fetch_array($SQL)){
$ch = curl_init($resultSet['url'] . $fullcurl); //load the urls and send GET data
curl_setopt($ch, CURLOPT_TIMEOUT, 2); //Only load it for two seconds (Long enough to send the data)
curl_exec($ch); //Execute the cURL
curl_close($ch); //Close it off
} //end while loop
Ben burada ne yapıyorum, ona bazı ekstra değişkenleri, sadece bazı GET verileri ($ fullcurl) ekleyerek, MySQL Veritabanı ($ Resultset ['url']) URL'leri alarak ve sadece sayfaları istiyor. Bu bu sayfalarda çalışan komut dosyasını başlatır, ve bu komut yapması gereken, hepsi bu komut başlayın. Herhangi çıktı dönmek gerekmez. Sadece yük başlatmak için komut dosyası için yeterince uzun sayfa.
Ancak şu anda bir anda her bir URL (şu anda 11) bir yüklüyor. Ben aynı anda hepsini yüklemeniz gerekir. Ben curl_multi_ * kullanmak gerekir anlıyorum, ama ben cURL işlevlerinin nasıl çalıştığı hakkında en ufak bir fikrim yok, bu yüzden bir süre döngü * curl_multi_ kullanmak benim kodunu değiştirmek için nasıl bilmiyorum.
Yani benim sorular şunlardır:
Nasıl ben aynı anda tüm URL'leri yüklemek için bu kodu değiştirebilirsiniz? Açıklamak ve bana kodu vermeyecektir ediniz. Ben tam her işlevi ne yaptığını bilmek istiyorum. While döngüsü sadece bir anda her satır bir gönderme olduğundan, bir süre döngü içinde çalışmak bile curl_multi_exec mı?
Ve tabii ki, cURL işlevleri hakkında herhangi referanslar, rehberleri öğreticiler yanı sıra, güzel olurdu. Bana sözdizimi vererek iyi bir iş yapar iken gibi, php.net tercihen çok değil, onun sadece bir little, kuru ve çok iyi değil açıklamalar.
EDIT: zaf Tamam, şimdi benim geçerli kod:
$mh = curl_multi_init(); //set up a cURL multiple execution handle
$SQL = mysql_query("SELECT url FROM urls") or die(mysql_error()); //Query the shell table
while($resultSet = mysql_fetch_array($SQL)){
$ch = curl_init($resultSet['url'] . $fullcurl); //load the urls and send GET data
curl_setopt($ch, CURLOPT_TIMEOUT, 2); //Only load it for two seconds (Long enough to send the data)
curl_multi_add_handle($mh, $ch);
} //No more shells, close the while loop
curl_multi_exec($mh); //Execute the multi execution
curl_multi_close($mh); //Close it when it's finished.