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 に答える