<?php
header("Content-Type:text/html;charset=utf-8");
session_start();
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$executiontime = 5; // max time for scripting
$sleeptime = 3; // seconds to pauze after execution time limit
if(!isset($_GET["continue"])){
$_SESSION["numbers"] = range(1,100000);
$_SESSION["genesis"] = microtime(true); // absolute start time
echo count($_SESSION["numbers"]);
}
$_SESSION["starttime"] = microtime(true); // 'this round' start time
foreach($_SESSION["numbers"] as $key=>$value){
sleep(1);
// abort and 'reload' upon exceeding execution time
if((microtime(true) - $_SESSION["starttime"]) > $executiontime){
echo "<p>" . count($_SESSION["numbers"]) . " items left";
echo "<br>This round: " . round((microtime(true) - $_SESSION["starttime"]),2) . " seconds";
echo "<br>Total time: " . round((microtime(true) - $_SESSION["genesis"])/60,2) . " minutes";
echo "<p><strong>Pause script...</strong> Resume in $sleeptime seconds...</p>";
die ('<meta http-equiv="refresh" content="'.$sleeptime.';URL='.$_SERVER['SCRIPT_URI'].'?continue=1" /></body></html>');
}
// do some stuff while execution time is still ok
unset($_SESSION["numbers"][$key]);
}
echo "<br>Completed...: total time " . round((microtime(true) - $_SESSION["genesis"])/60,2) . " minutes";