Php 为什么我的卷发请求从未停止过?

Php 为什么我的卷发请求从未停止过?,php,curl,Php,Curl,我想在执行php文件时获得2年的数据。 但问题是,curl请求不会因为一次事件而停止,如果我说: curl_setopt($ch, CURLOPT_TIMEOUT, 30); 这是工作,但我等待30秒,在我的导航器中,我等待几秒来执行文件,为什么我的脚本从未停止 守则: <?php $dateDeb = '2010-07-23'; $dateFin = '2012-07-23'; $debut_mois = 07; $debut_jour = 23; $debut_

我想在执行php文件时获得2年的数据。 但问题是,curl请求不会因为一次事件而停止,如果我说:

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";

    }

它永远不会停止,因为你的循环经历了2年的日期,也就是730天

因此,您将发出730个CURL命令,超时时间可以等于730*30=21900最大处理秒


实际上,我看到您正在发出两个CURL命令,因此最多需要21900*2=43800秒的处理时间。

您有两年的时间。这些请求中的每一个都会发出一个新请求,而新请求并不知道旧请求或这些请求花费了多长时间。如果要在特定时间后停止执行,可以使用:


不,我要说的是,对于第一个请求,它永远不会停止,但在我的导航器中,只有几秒钟,我的脚本永远不会传递到第二个请求,我不知道为什么,如果我超时,脚本会在30秒后停止,但如果脚本在10秒内完成,它会在20秒后白白等待:?脚本不会在10秒内完成。在每次请求0.1秒的情况下,您仍然需要等待73秒。是的,我知道,但我在说,这是脚本从未完成第一次出现。。。。我可以看到,因为我使用控制台执行脚本,脚本在第一天停止。@Brian不能保证服务器在生成输出时会刷新输出。
set_time_limit(30);