Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   BBcode class (https://forum.antichat.xyz/showthread.php?t=65643)

Doom123 27.03.2008 21:50

BBcode class
 
эм решил написать класс ббкодов...
вот что вышло ...

PHP код:

<?php

/**
 * @author @FATAL@
 * @copyright 2008
 */

class BBcode
{
    private 
$BBarr = array(
        
'#\[B\](.*?)\[/B\]#ixs' => '<b>$1</b>'
        
'#\[IMG\](.*? \.jpg|.*? \.gif)\[/IMG\]#ixs' => '<img src="$1">'
        
'#\[S\](.*?)\[/S\]#ixs' => '<s>$1</s>'
        
'#\[LINK=(www\..*?|http://.*?)\](.*?)\[/LINK\]#xis' => '<a href="$1" target="_blank">$2</a>'
        
'#\[LEFT\](.*?)\[/LEFT\]#xis' => '<div align="left">$1</div>'
        
'#\[CENTER\](.*?)\[/CENTER\]#xis' => '<div align="center">$1</div>'
        
'#\[RIGHT\](.*?)\[/RIGHT\]#xis' => '<div align="right">$1</div>'
        
'#\[I\](.*?)\[/I\]#xis' => '<em>$1</em>'
        
);

    public function 
bbcod($BBcode)
    {
        
$BBcode htmlspecialchars($BBcode);
        foreach (
$this->BBarr as $BB => $BBHTM)
        {
            if (
$BB === '#\[LINK=(www\..*?|http://.*?)\](.*?)\[/LINK\]#xis')
            {
                if (
preg_match('#\[LINK=(www\..*?|http://.*?)\](.*?)\[/LINK\]#xis'$BBcode$pock))
                {
                    if (
$pock['2'] === '')
                    {
                        
$BBcode preg_replace($BB'<a href="$1" target="_blank">$1</a>'$BBcode);
                    }

                }


            }
            
$blank '';
            while (
$BBcode !== $blank)
            {
                
$blank $BBcode;
                
$BBcode preg_replace($BB$BBHTM$BBcode);
            }

        }
        echo 
$BBcode;
    }

}
?>

жду критики....

для проверки работы

PHP код:

$str "[i][b]Test[/b][/i]";
$bb = new BBcode;
$bb->bbcod($str); 



Время: 07:20