多个curl调用同一个url

时间:2010-10-05 09:06:01

标签: php curl

我想构建一个模拟用户点击特定Url的命中引擎, 我在循环中使用curl_exec调用相同的网址

如何改善此脚本的效果?

这样做的正确方法是什么?

我现在所做的是:

$options = array( 
 CURLOPT_RETURNTRANSFER => true,     // return web page 
 CURLOPT_HEADER         => true,    // return headers 
 CURLOPT_FOLLOWLOCATION => true,     // follow redirects 
 CURLOPT_ENCODING       => "",       // handle all encodings 
 CURLOPT_USERAGENT      => $useragent, // who am i 
 CURLOPT_AUTOREFERER    => true,     // set referer on redirect 
 CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect 
 CURLOPT_TIMEOUT        => 120,      // timeout on response 
 CURLOPT_MAXREDIRS      => 1,       // stop after 1 redirects 
 CURLOPT_URL            => $url . $fields_string,
 CURLOPT_SSL_VERIFYPEER => false,  
); 

//open connection
$ch = curl_init();

for ($i = 0; $i < $NumberOfHits; $i++)
{        
 curl_setopt_array($ch, $options);
 //execute post
 $result = curl_exec($ch);
 if(curl_errno($ch))
 {
    $error = "Curl error: " . curl_error($ch) . "\n";
    fwrite($fp, $error);
 }
 $returnCode = curl_getinfo($ch);     
 $my_arr[] = parse_url($returnCode['url'] , PHP_URL_QUERY);
 ...      
}

我知道curl_multi_exec,但是这个问题是针对不同的网址构建的,在我的情况下使用它也是正确的吗?

1 个答案:

答案 0 :(得分:1)

您需要多么出色的表现?你也可以使用普通的curL_exec和while来做到这一点,我尝试了它,它能够在一秒钟内完成大约5次点击,所以每分钟就有300次点击。虽然它可能取决于你的isp。