我有一个脚本,它使用Curl在相同URL的多个请求中同时获取数据。
每次发送类似的新请求时,CURL中是否有任何配置?
因为当我第二次尝试使用CURL时,它的行为就像假请求。
目前我正在使用此配置。
$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_HEADER, true);
curl_setopt ( $ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ( $ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt ( $ch, CURLOPT_TIMEOUT, 150);
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
$data = curl_exec($ch);
curl_close($ch);
如果有人有任何建议,请帮助我。
谢谢。。。
如果您想要另一个curl请求,只需再次创建一个新的curl对象。
$ch1 = curl_init();
$ch2 = curl_init();
...
curl_close($ch1);
curl_close($ch2);
如果您想在每个curl请求上使用相同的选项,您可以在循环中使用curl_exec,而无需关闭或重新初始化它:
$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_HEADER, true);
curl_setopt ( $ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ( $ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt ( $ch, CURLOPT_TIMEOUT, 150);
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
foreach($urls as $url ){
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
}
curl_close($ch);