Quick Search:
 
 PHP Code: Convert BBCode Tags Jump to:  
Category: >> PHP Code >> Convert BBCode Tags  

<< lastnext >>

Snippet Name: Convert BBCode Tags

Description: Compact function that converts BBCode tags to their HTML equivalent.

Also see:
» BR2NL Function: Opposite of NL2BR
» Convert Seconds to Hours:Minutes:Secon...
» Convert UK Dates To mySQL Format Dates
» Convert miles to feet, feet to miles, ...
» Roman2dec and Dec2Roman
» Convert Minutes to Hours
» Binary to Text and Text to Binary
» Decimal to octal conversion
» Convert minutes to hours #2
» Convert minutes to hours one
» Convert HTML to plain text

Comment: (none)

Language: PHP
Highlight Mode: PHP
Last Modified: March 16th, 2009

<?PHP
 
// Convert BBCodes to their HTML equivalent
FUNCTION do_bbcode($text){
     GLOBAL $lang_common, $FORUM_user;
 
     IF (STRPOS($text, 'quote') !== FALSE){
          $text = STR_REPLACE('[quote]', '</p><blockquote><div class="incqbox"><p>', $text);
          $text = PREG_REPLACE('#\[quote=("|"|\'|)(.*)\\1\]#seU', '"</p><blockquote><div class=\"incqbox\"><h4>".str_replace(array(\'[\', \'\\"\'), array(\'[\', \'"\'), \'$2\')." ".$lang_common[\'wrote\'].":</h4><p>"', $text);
          $text = PREG_REPLACE('#\[\/quote\]\s*#', '</p></div></blockquote><p>', $text);
     }
 
     $pattern = ARRAY('#\[b\](.*?)\[/b\]#s',
                          '#\[i\](.*?)\[/i\]#s',
                          '#\[u\](.*?)\[/u\]#s',
                          '#\[url\]([^\[]*?)\[/url\]#e',
                          '#\[url=([^\[]*?)\](.*?)\[/url\]#e',
                          '#\[email\]([^\[]*?)\[/email\]#',
                          '#\[email=([^\[]*?)\](.*?)\[/email\]#',
                          '#\[color=([a-zA-Z]*|\#?[0-9a-fA-F]{6})](.*?)\[/color\]#s');
 
     $replace = ARRAY('<strong>$1</strong>',
                          '<em>$1</em>',
                          '<span class="bbu">$1</span>',
                          'handle_url_tag(\'$1\')',
                          'handle_url_tag(\'$1\', \'$2\')',
                          '<a href="mailto:$1">$1</a>',
                          '<a href="mailto:$1">$2</a>',
                          '<span style="color: $1">$2</span>');
 
     $text = PREG_REPLACE($pattern, $replace, $text);
 
     RETURN $text;
}
 
 
/////////////////////////////////////
 
     // If the message contains a code tag we have to split it 
        // up (text within [code][/code] shouldn't be touched)
     IF (STRPOS($text, '[code]') !== FALSE && STRPOS($text, '[/code]') !== FALSE){
          LIST($inside, $outside) = split_text($text, '[code]', '[/code]');
          $outside = ARRAY_MAP('ltrim', $outside);
          $text = IMPLODE('<">', $outside);
     }
 
?>


 
   Home |    Search |    Code Library |    Sponsors |    Privacy |    Terms of Use |    Contact Us © 2003 - 2024 psoug.org