Die Frage, wie man mit PHP Fortschrittsbalken erzeugen, mehrere Seiten nacheinander senden oder Inhalte pushen kann wird oft gestellt. Einige Browswer kommen damit zurecht, wenn der Server die auf folgende Weise einen Multipart-Header sendet, andere jedoch nicht. Leider versteht Mozilla Firefox diese Header seit der Version 5 nicht mehr:
<?php
header('Content-type: multipart/x-mixed-replace;boundary=endofsection');
$pmt = array("--", "\\", "|", "/" );
for( $i = 1; $i < 100; $i ++ ) {
print "\n--endofsection\n";
print "Content-type: text/html\n\n";
print "<html>
<head><title>Counter</title></head>
<body>
<h1>".$i."% ".$pmt[$i % 4]."</h1>
<div style='width: ".$i."%; background-color:green'> </div>
</body>
</html>
";
ob_flush();
flush();
sleep(1);
}
print "\n--endofsection\n";
print "Content-type: text/html\n\n";
print "<html>
<head><title>Fertig</title></head>
<body>
<h1>Fertig ...</h1>
<p><a href=\"".$_SERVER['PHP_SELF']."\">Neustart</a></p>
</body>
</html>
";
print "\n--endofsection--\n";
?>
Dieses Beispiel können Sie hier testen.