PHP: Fortschrittsbalken mit Multipart

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.


Weitere Informationen in diesem Bereich: