Как сделать php progressbar?

1194358689_fДопустим, вы организовали циклическую отправку писем и хотите видеть, какое письмо отправляется в данный момент времени. Это можно организовать через неявную очистку буфера.
Неявная очистка приводит к тому, что очистка буфера будет выполнятся после каждой операции вывода в окно браузера (функциями echo, print и т.п.), поэтому явные вызовы функции flush() не понадобятся. Включение неявной очистки отключает буферизацию вывода, текущее содержимое буфера вывода будет отправлено, так как если бы вызывалась функция ob_end_flush().
Ниже пример, иллюстрирующий вывод текущего значения счётчика цикла. Также реализован progressbar выполнения цикла. Код примера приведен ниже.
[source]

< ?php set_time_limit(600); header("Expires: Tue, 1 Jul 2003 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Pragma: no-cache"); ob_implicit_flush(); ?>

Progress bar

< ?php function indicator($str = '', $persent) { echo '