PHPで実行時にタイムアウトを設定したいと思います。ループスルーしたいのですが、設定した実行時間のために、たとえば 5 でカットしたいと考えています。
ini_set('max_execution_time',2);
for ($i=0;$i<10;$i++){
echo time();
echo ' i:'.$i;
echo "\n";
echo "\n";
}
制限したいと思います。
使用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
time() を使用して、ループの直前にタイムスタンプを取得できます。そして、forloop に追加のテストを入れます。
$startTime = time();
for ($i=0;$i<10 && time() < $startTime + 1000;$i++){
echo time();
echo ' i:'.$i;
echo "\n";
echo "\n";
}