0

我想在 php 中设置执行超时。我想循环播放,例如由于我设置的执行时间,我想在 5 处切入。

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

想给它一个限制。

4

2 回答 2

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
于 2012-11-30T15:01:27.733 回答
0

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

$startTime = time();
for ($i=0;$i<10 && time() < $startTime + 1000;$i++){
    echo time();
    echo ' i:'.$i;
    echo "\n";
    echo "\n";
}
于 2012-11-30T15:01:53.300 回答