quickerUBB UBB extension implementing [color] and [size] tags
HotScript @ RoŲnašn index for more scripts and extensions.
Run this script as an example.
<?
  
/**********************************************
  * quickerUbb Color/Size extension (c)2003 RoŲnašn
  *          
  * This file contains an extension to the quickerUBB
  * parsing engine.
  *
  * To implement the color and size functionality
  * you can do two things:
  * - add this file to your project and include it.
  * - copy the parse_size and parse_color methods
  *   into the ubbParser class as is explained
  *   in quickerubb.php.
  *
  * quickerUbb can be found at
  * http://www.roonaan.nl/hotscripts
  *
  * As this extension, other extensions will not be
  * scripted directly into the quickerubb.php file, but
  * will come available as seperate classes. I recognize
  * this takes more effort to assemble all the functionality
  * you need, but I thought this was best, because most
  * extensions are scripted on specific request rather than
  * general needs.
  *
  * For Questions and comments: hotscripts@roonaan.nl
  * please add script name to your email subject.  *
  */
  
$start_time = !isset($start_time) ? explode(' 'microtime()) : $start_time;

include_once 
'quickerubb.php';

class 
ubbColorSizeParser extends ubbParser
{
  function 
parse_size($tree)
  {
    
$params $tree->getParameters();
    
$size = isset($params['size']) ? $params['size'] : 'fout';
    if(!
is_numeric($size))
    {
      return 
$tree->innerToHtml($this$this->usedTags);
    }
    return 
$this->simple_parse($tree'<font size="'.$size.'">''</font>');
  }
  
  function 
parse_color($tree)
  {
    
$params $tree->getParameters();
    
$color = isset($params['color']) ? $params['color'] : 'fout';
    if(
ereg('^#[0-9A-Fa-f]{6}$',$color) || ereg('^[a-zA-Z]*$',$color))
    {
      return 
$this->simple_parse($tree'<font color="'.$color.'">','</font>');
    }
    return 
$tree->innerToHtml($this$this->usedTags);
    
  }
}

/** Testcenter **/
$self $_SERVER['PHP_SELF'];
$file str_replace('\\','/',__FILE__);
$self substr($selfstrrpos($self'/')+1);
$file substr($filestrrpos($file'/')+1);
if(
$self==$file)
{
  
$parser = new ubbColorSizeParser();
  
ob_start();
  
?>
  [b][big]QuickerUbb UBB parser engine extension[/big][/b]
  [i]Color and size tags[/i]
  
  [hr]
  [b]Color tag[/b]
  [i]Testing with correct syntaxed tags:[/i]
  The next line should be colored red with {color=red} syntax:
  [color=red]This line is red[/color]
  
  Seems to work, lets try the hex-variant of color definition
  {color=#0000ff} should make the following line blue:
  [color=#0000ff]This line is blue[/color]
  
  [hr]
  
  [b]Size tag[/b]
  [i]Lets test some sizing[/i]
  Sizing is implemented as transformation from {size=[i]n[/i]} to <font size="[i]n[/i]">
  whereas [i]n[/i] has to be numeric to have effect.
  [size=10]Size 10 line[/size]
  
  [hr]
  
  [b]Testing with incorrect data values[/b]
  {color=ddf1dd}{size=10}ddffdd{/size}{/color}
  [color=ddf1dd][size=10]ddffdd[/size][/color]
  
  {size=b}a{b}b{/b}c{/size}
  [size=b]a[b]b[/b]c[/size]

  [hr]
  
  [i]Some last words[/i]
  Have fun.
  <?php
  $text 
ob_get_contents();
  
ob_end_clean();
  echo 
$parser->parse($text);
}




$end_time explode(' 'microtime());
if(
$self==$file) echo '<hr /><div><small>Generation in: '.($end_time[0] + $end_time[1] - $start_time[0] - $start_time[1]).' secs</small></div>';