<?php
 
 
  require_once('source_parser.class.php');
 
 
  function get_open_tag($attrs)
 
  {
 
    $attr_num = count($attrs);
 
    for ($i = 0; $i < $attr_num; $i++)
 
    {
 
      $attrs[$i][0] = strtolower($attrs[$i][0]);
 
      $attrs[$i][1] = strtolower($attrs[$i][1]);
 
    }
 
    $replacement = '';
 
    if ($attrs[0][0] == 'i')
 
    {
 
      $replacement = '<i>';
 
    }
 
    elseif ($attrs[0][0] == 'style')
 
    {
 
      $bold = false;
 
      $font = '';
 
      for ($i = 1; $i < $attr_num; $i++)
 
      {
 
        if ($attrs[$i][0] == 'bold' && $attrs[$i][1])
 
        {
 
          $bold = true;
 
        }
 
        elseif ($attrs[$i][0] == 'font')
 
        {
 
          if ($attrs[$i][1] == 'sans-serif')
 
          {
 
            $font = 'Arial, Helvetica, sans-serif';
 
          }
 
          else
 
          {
 
            $font = 'Times New Roman, serif';
 
          }
 
        }
 
      }
 
      $replacement = '<span style="';
 
      if (!empty($font))
 
      {
 
        $replacement .= 'font-family:' . $font . ';';
 
      }
 
      if ($bold)
 
      {
 
        $replacement .= 'font-weight:bold;';
 
      }
 
      $replacement .= '">';
 
    }
 
    elseif ($attrs[0][0] == 'picture')
 
    {
 
       $replacement = '<img src="' . $attrs[0][1] . '" />';
 
    }
 
    return $replacement;
 
  }
 
 
  function get_close_tag($tag)
 
  {
 
    $tag = strtolower($tag);
 
    $replacement = '';
 
    if ($tag == 'i')
 
    {
 
      $replacement = '</i>';
 
    }
 
    elseif ($tag == 'style')
 
    {
 
      $replacement = '</span>';
 
    }
 
    return $replacement;
 
  }
 
 
  $source = <<<SRC
 
 
Here is the text.... plain text, "simple" text... isn't it?
 
And here is some HTML: <b>Bold</b>
 
 
Here is my E-mail: [email protected]
 
And my homepage: http://myhost.co.uk/~me/
 
 
Ok :) now let's play with some BBCode style tags...
 
[STYLE BOLD=1 FONT = 'serif']he, is it cool?[/STYLE]
 
[i]tags can be case-insensetive[/i]
 
[ PICTURE = "/images/photo.jpg" ]
 
 
SRC;
 
 
  $parser = new source_parser();
 
 
//  $parser->html_allowed = true;
 
  $parser->html_allowed = false;
 
  $parser->nl_to_break = true;
 
//  $parser->nl_to_break = flase;
 
  $parser->url_parsing_on = true;
 
//  $parser->url_parsing_on = false;
 
  $parser->email_parsing_on = true;
 
//  $parser->email_parsing_on = false;
 
  $parser->email_encode_on = true;
 
//  $parser->email_encode_on = false;
 
  $parser->single_tags = array('picture');
 
  $parser->paired_tags = array('style', 'i');
 
//  $parser->paired_tags = array();
 
 
  echo $parser->parse($source, 'get_open_tag', 'get_close_tag');
 
 
?>
 
 |