我想在php中执行一次超时。我想循环,我想在5处切割,例如因为我设置的执行时间。
ini_set('max_execution_time',2);
for ($i=0;$i<10;$i++){
echo time();
echo ' i:'.$i;
echo "\n";
echo "\n";
}
想给它一个限制。
答案 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";
}