2012-11-30 128 views
0

我想在php中設置執行超時。我想循環播放,因爲我設置的執行時間,我想以5爲例。在循環記錄時設置執行超時時間

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

想給它一個限制。

+0

你可以把VAR時間()之前的循環,因爲如果你想打破循環如果將5秒後到期 – vodich

+1

的事情是過去的時間循環焯芬內 - 這對循環絕不會超過5秒。 –

+0

http://codepad.org/8iflL06z – Venu

回答

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 
0

你可以採取一個時間戳只是你的循環之前的時間()。並在forloop中加入額外的測試。

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