UserString 
Overview
This example will run a horizontal progress bar with custom string.
It's a PEAR packages installation simulation.
Use the HTML_Progress2 callback feature.
Screenshot

Demonstration
Give it a try
Dependencies
This example requires mandatory resources :
And also but optional :
Explains step by step
The progress meter wait 200ms (line 34)
between each step of 5% (line 35).
There are 10 cells with default values:
| Property        | Value   | Default  | 
| active-color    |    | #006600  | 
| inactive-color  |    | #CCCCCC  | 
| width           |    | 15       | 
| height          |    | 20       | 
| spacing         |    | 2        | 
See also :
The progress bar string is left aligned on right side (lines 36-38):
| Property          | Value   | Default  | 
| class             |     | progressTextLabel%s  | 
| width             |     | 0          | 
| height            |     | 0          | 
| font-size         |     | 11         | 
| font-family       |     | Verdana, Tahoma, Arial  | 
| font-weight       |     | normal     | 
| color             |     | #000000    | 
| background-color  |     |       | 
| align             |     | left       | 
| valign            | right    | top        | 
See also :
The PEAR packages simulation process (lines 18-31)
is defined by the HTML_Progress2 callback (line 39):
default is HTML_Progress2::sleep.
See also :
Source Code
<?php
 
/**
 
 * Horizontal progress bar with custom string
 
 * rather than percent text info.
 
 *
 
 * @version    $Id: userstring.php,v 1.4 2006/05/24 08:47:05 farell Exp $
 
 * @author     Laurent Laville <pear@laurent-laville.org>
 
 * @package    HTML_Progress2
 
 * @subpackage Examples
 
 * @access     public
 
 */
 
require_once 'HTML/Progress2.php';
 
 
 
$pkg = array('PEAR', 'Archive_Tar', 'Config',
 
    'HTML_QuickForm', 'HTML_CSS', 'HTML_Page', 'HTML_Template_Sigma',
 
    'Log', 'MDB', 'PHPUnit');
 
 
 
function myFunctionHandler($pValue, &$pBar)
 
{
 
    global $pkg, $labelID1;
 
 
 
    $pBar->sleep();
 
 
 
    $i = floor($pValue / 10);
 
    if ($pValue == 100) {
 
        $msg = 'installation complete';
 
    } else {
 
        $msg = "installing package ($pValue %) ... : ".$pkg[$i];
 
    }
 
    $pBar->setLabelAttributes($labelID1, array('value' => $msg));
 
}
 
 
 
$pb = new HTML_Progress2(null, HTML_PROGRESS2_BAR_HORIZONTAL, 0, 100, false);
 
$pb->setAnimSpeed(200);
 
$pb->setIncrement(5);
 
$labelID1 = 'txt1';
 
$pb->addLabel(HTML_PROGRESS2_LABEL_TEXT, $labelID1);
 
$pb->setLabelAttributes($labelID1, 'valign=right');
 
$pb->setProgressHandler('myFunctionHandler');
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 
    "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 
<head>
 
<title>UserString Progress2 example</title>
 
<style type="text/css">
 
<!--
 
<?php echo $pb->getStyle(); ?>
 
 
 
body {
 
    background-color: #FFFFFF;
 
}
 
 -->
 
</style>
 
<?php echo $pb->getScript(false); ?>
 
</head>
 
<body>
 
 
 
<?php
 
$pb->display();
 
$pb->run();
 
?>
 
 
 
</body>
 
</html>