[PHP] BB Code-VBForums
Results 1 to 5 of 5

Thread: [PHP] BB Code

Hybrid View

  1. #1

    Thread Starter
    <?="Moderator"?> john tindell's Avatar
    Join Date
    Jan 2002
    Location
    Brighton, UK
    Posts
    1,099

    [PHP] BB Code

    This code will match the tags and format them.

    Custom tags can be added to the array called $tags, in the format


    tag name => style information

    eg

    'greentext' => 'color: green;'

    using the new tag

    [greentext]Some text[/greentext]



    Heres the code.
    PHP Code:
    <?

    function MATags2($string)
    {
        
    $tags = array(
                        
    'b' => 'font-weight:bold;',
                        
    'u' => 'text-decoration: underline;',
                        
    'i' => 'font-style: italic;',
                        
    'small' => 'font-size:10px;',
                        
    'large' => 'font-size:16px;',
                        
    'hb' => 'font-weight:bold;font-size:16px;',
                        
    'hu' => 'text-decoration: underline;font-size:16px;',
                        
    'hbu' => 'font-weight:bold;text-decoration: underline;font-size:16px;',
                        
    'h' => 'font-size:16px;',
                        
    'c' => 'text-align:center;',
                        
    'l' => 'text-aligb:left;',
                        
    'r' => 'text-align:right;');
        
        
        foreach(
    $tags as $tag =>$val)
        {
            
    $list .= $tag "|";
        }
        
    $list substr($list,0,strlen($list)-1);
        
        
    $pattern '#\[('$list .')\].*?\[\/('$list .')\]#si'
        
        
    $match_count preg_match_all($pattern,$string,$array);

        foreach(
    $array[0] as $match)
        {
            
    $before_replace $match;
            
    $after_replace $match;
            
    $style "";
            
    $inline true;
            foreach(
    $tags as $tag => $replace)
            {
                if(
    preg_match('#\['.$tag.'\]#',$before_replace))
                {
                    
    $style .= $replace ' ';
                    
    $after_replace str_replace("[" $tag "]","",$after_replace);
                    
    $after_replace str_replace("[/" $tag "]","",$after_replace);
                    if(
    $tag == 'c' || $tag == 'l' || $tag == 'r')
                    {
                        
    $inline false;
                    }
                }
            }
            if(
    $inline)
            {
                
    $after_replace "<span style=\"$style\">$after_replace</span>";
            }
            else
            {
                
    $after_replace "</p><div style=\"$style\">$after_replace</div><p>";
            }
            
    $string str_replace($before_replace,$after_replace,$string);
            
    //clean up any tags no found
            
        
    }
        foreach(
    $tags as $tag => $replace)
        {
            
    $string str_replace("[" $tag "]","",$string);
            
    $string str_replace("[/" $tag "]","",$string);
        }
        return 
    $string;
    }
    function 
    MAURL($text)
    {
        
    $pattern '#\[(small|large)\].*?\[\/(small|large)\]#si'
        
        if(
    preg_match_all($pattern,$text,$array))
        {
            foreach(
    $array[0] as $match)
            {
                
    $before_replace $match;
                
    $after_replace $before_replace;
                
                
    $url_pattern '#\[(email|url)(=.*?|)\](.*?)\[\/(email|url)\]#';
                
    $count 0;
                if(
    preg_match_all($url_pattern,$after_replace,$url_array))
                {
                    foreach(
    $url_array[0] as $url_match)
                    {
                        if(
    preg_match('/large/',$after_replace))
                        {
                            
    $style "font-size:16px;";
                            
                        }
                        elseif(
    preg_match('/small/',$after_replace))
                        {
                            
    $style "font-size:10px;";
                        }
                        if(
    $url_array[1][$count] == "url")
                        {
                            
    $after_replace preg_replace('/\[url\](.*?)\[\/url\]/sim','<a style="' $style '" href="\\1">\\1</a>',$after_replace);
                            
    $after_replace preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/sim','<a style="' $style '" href="\\1">\\2</a>',$after_replace);
                        }
                        elseif(
    $url_array[1][$count] == "email")
                        {
                            
    $after_replace preg_replace('/\[email\](.*?)\[\/email\]/sim','<a style="' $style '" href="mailto:\\1">\\1</a>',$after_replace);
                            
    $after_replace preg_replace('/\[email=(.*?)\](.*?)\[\/email\]/sim','<a style="' $style '" href="mailto:\\1">\\2</a>',$after_replace);
                        }
                        
    $text str_replace($before_replace,$after_replace,$text);
                        
    $before_replace $after_replace;
                        
    $count++;
                    }
                }
            }
        }
        
        return 
    $text;
    }
    function 
    Formatcode_List($text)
    {
        
    $match_count preg_match_all("#\[list\](.*?)\[/list]#si"$text$matches);
        for (
    $i 0$i $match_count$i++){
            
    $before_replace $matches[1][$i];
            
    $after_replace $matches[1][$i];
            
    $temp preg_split('/\[\*\]/',$before_replace);
            
            
    array_shift($temp);
            
            foreach(
    $temp as $t)
            {    
                
    $t trim($t);
                if(
    $t != null)
                {
                    
    $out .= "<li>"nl2br$t ) . "</li>\n";
                }
            }
            
    $after_replace $out;

            
    $str_to_match "[list]" $before_replace "[/list]";

            
    $replacement $code_start_html;
            
    $replacement .= $after_replace;
            
    $replacement .= $code_end_html;

            
    $text str_replace($str_to_match,"<ul>" $replacement "</ul>"$text);
        }
        
    $text str_replace("[list]"$code_start_html$text);
        
    $text str_replace("[/list]"$code_end_html$text);
        return 
    $text;
    }

    function 
    MATags($text)
    {
        
    $text nl2br($text);
        
        
    $text MAURL($text);
        
    $text MATags2($text);

        
    $text preg_replace('/\[img=(.*?)\]/sim','<img src="\\1" alt="Article Image"/>',$text);
        
        
    $text preg_replace('/\[url\](.*?)\[\/url\]/sim','<a href="\\1">\\1</a>',$text);
        
    $text preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/sim','<a href="\\1">\\2</a>',$text);
        
        
    $text preg_replace('/\[email\](.*?)\[\/email\]/sim','<a  href="mailto:\\1">\\1</a>',$text);
        
    $text preg_replace('/\[email=(.*?)\](.*?)\[\/email\]/sim','<a href="mailto:\\1">\\2</a>',$text);

        
    $text Formatcode_List($text);
        

        return 
    $text;
    }
    ?>
    Here is an example of the code being used: test.php

    Heres a list of the tags and what the output it like, without extra CSS being applied to them.

    http://www.mindlessant.co.uk/articlecode.php
    Attached Files Attached Files
    Last edited by john tindell; May 1st, 2006 at 04:08 PM.

  2. #2
    Junior Member
    Join Date
    Dec 2005
    Posts
    28

    Re: [PHP] BB Code

    hi john,
    I have not started to lern PHP yet and just wanted to see what its capible of, so i tryed to download "test.php" and my pc can not reconize the file type ".php" have you any idea how i can veiw the file?.

    P.S And do you know any good PHP tutorails esspecialy on installing PHP?



    thanks pip

  3. #3

    Thread Starter
    <?="Moderator"?> john tindell's Avatar
    Join Date
    Jan 2002
    Location
    Brighton, UK
    Posts
    1,099

    Re: [PHP] BB Code

    Installing PHP, MySql and Apache on Windows written by VisualAd great tutorial to get you started using PHP and MySQL

  4. #4
    Addicted Member
    Join Date
    Apr 2006
    Posts
    155

    Re: [PHP] BB Code

    You can use notepad, but I recommend this awesome HTML Editor:

    Chami HTML-Kit

  5. #5
    Banned
    Join Date
    Mar 2009
    Posts
    3

    Re: [PHP] BB Code

    hi john,

    Download the "test.php", thanks to a great, everything works, everything is good.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Featured


Click Here to Expand Forum to Full Width

Survey posted by VBForums.