我想在执行php文件时获得2年的数据。 但问题是,卷曲请求永远不会停止一次出现,如果我把它结束:
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
这是工作但我等了30秒,在我的导航器中,我等待几秒钟来执行文件,为什么我的脚本永远不会停止?
代码:
<?php
$dateDeb = '2010-07-23';
$dateFin = '2012-07-23';
$debut_mois = 07;
$debut_jour = 23;
$debut_annee = 2010;
$fin_mois = 07;
$fin_jour = 23;
$fin_annee = 2012;
$dates=array();
$debut_date = mktime(0, 0, 0, $debut_mois, $debut_jour, $debut_annee);
$fin_date = mktime(0, 0, 0, $fin_mois, $fin_jour, $fin_annee);
for($i = $debut_date; $i <= $fin_date; $i+=86400)
{
$dates[]=date("Y-m-d",$i);
}
foreach($dates as $date){
$cron1='http://ndd.com/admin/api/xiti/bot-lien_sponsorisees/'.$date;
$cron2='http://ndd.com/admin/api/xiti/bot-affiliation/'.$date;
$cron3='http://ndd.com/admin/api/xiti/bot-analytics/'.$date;
echo $date." : EN COURS ... ";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $cron1);
curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
// curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
curl_close($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $cron2);
curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
//curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_exec($ch);
curl_close($ch);
echo $date." : OK \n";
}
答案 0 :(得分:1)
它永远不会停止,因为你循环了2年的日期,即730天。
所以你发出730个CURL命令,超时可以等于730 * 30 = 21900最大处理秒数。
实际上我发现你发出两个CURL命令,所以21900 * 2 = 43800最大处理秒数。
答案 1 :(得分:1)
你有两年的时间。其中每个都会发出 new 请求,新请求不了解旧请求或这些请求花了多长时间。如果您想在一段时间后停止执行,可以使用set_time_limit
:
set_time_limit(30);