循环记录时设置执行超时时间

时间:2012-11-30 14:56:58

标签: php timeout execution

我想在php中执行一次超时。我想循环,我想在5处切割,例如因为我设置的执行时间。

ini_set('max_execution_time',2);
for ($i=0;$i<10;$i++){
    echo time();
    echo ' i:'.$i;
    echo "\n";
    echo "\n";
}

想给它一个限制。

2 个答案:

答案 0 :(得分:1)

使用ini_set('max_execution_time',2);会影响整个PHP脚本,可能会导致

Fatal error: Maximum execution time of 2 second exceeded

您可以简单地将时间计算添加到for循环中;

$maxTime = 2; // sec ;
$start = time();
echo "<pre>";
for($i = 0; $i < 10, (time() - $start) < $maxTime; $i ++) {
    echo time();
    echo ' i:' . $i;
    echo "\n";
    echo "\n";
    sleep(1); // slow the script
}

输出

1354287243 i:0

1354287244 i:1

答案 1 :(得分:0)

你可以在你的循环之前用time()获取时间戳。并在forloop中进行了额外的测试。

$startTime = time();
for ($i=0;$i<10 && time() < $startTime + 1000;$i++){
    echo time();
    echo ' i:'.$i;
    echo "\n";
    echo "\n";
}