
Cela permet de découper une tâche qui bouche et qui dépasserait le timeout autorisé par php, ce qui permet par exemple de générer un volume important de données.
<html>
<head>
<?php
$delai = 3;
$pas = 5;
$max = 13;
if (isset($_GET['i'])) { $i = $_GET['i']; } else { $i = 0; }
$deb = $i+$pas;
$url = $_SERVER['PHP_SELF'].'?i=';
if ($i < $max) {
$headers_supp = '<meta http-equiv="refresh" content="'.$delai.'; url='.$url.$deb.'" />';
echo $headers_supp;
} else {
$fini = true;
}
?>
</head>
<body>
<h2>Test</h2>
<?php
$fin = $i+$pas;
if ($fin > $max) $fin = $max;
for ($j = $i; $j < $fin; $j++) {
echo $j.'<br />';
}
echo '<br />';
if (isset($fini)) {
echo 'Terminé';
} else {
echo 'Attente de '.$delai.' secondes';
}
exit();
?>
</body>
</html>
Le temps maximum d'exécution d'un script, max_execution_time, peut être fixé à l'aide de la fonction set_time_limit($secondes).