Показать сообщение отдельно

  #13  
Старый 26.10.2007, 14:04
EST a1ien
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
С нами: 10582516

Репутация: 114
По умолчанию

Ди и еще что думаете по поводу вот такой реализации BBcode
PHP код:
function bbcode($text)
{
    global 
$db_var;
    
$text BBparseurls($text);
    
$text " ".$text;

    
$bbcodes1 = array(
    
'$' => '$',
    
'[b]' => '<strong>',
    
'[/b]' => '</strong>',
    
'[p]' => '<p>',
    
'[/p]' => '</p>',
    
'[u]' => '<u>',
    
'[/u]' => '</u>',
    
'[i]' => '<em>',
    
'[/i]' => '</em>',
    
'[hr]' => '<hr />',
    
'[li]' => '<li>',
    
'[_]' => '&nbsp;',
    
'[__]' => '&nbsp; &nbsp;',
    
'[red]' => '<span style="color:#F93737">',
    
'[/red]' => '</span>',
    
'[white]' => '<span style="color:#FFFFFF">',
    
'[/white]' => '</span>',
    
'[green]' => '<span style="color:#09DD09">',
    
'[/green]' => '</span>',
    
'[blue]' => '<span style="color:#018BFF">',
    
'[/blue]' => '</span>',
    
'[orange]' => '<span style="color:#FF9900">',
    
'[/orange]' => '</span>',
    
'[yellow]' => '<span style="color:#FFFF00">',
    
'[/yellow]' => '</span>',
    
'[purple]' => '<span style="color:#A22ADA">',
    
'[/purple]' => '</span>',
    
'[black]' => '<span style="color:#000000">',
    
'[/black]' => '</span>',
    
'[grey]' => '<span style="color:#B9B9B9">',
    
'[/grey]' => '</span>',
    
'[pink]' => '<span style="color:#FFC0FF">',
    
'[/pink]' => '</span>',
    
'[sky]' => '<span style="color:#D1F4F9">',
    
'[/sky]' => '</span>',
    
'[sea]' => '<span style="color:#171A97">',
    
'[/sea]' => '</span>',
    
'[sub]' => '<sub>',
    
'[/sub]' => '</sub>',
    
'[sup]' => '<sup>',
    
'[/sup]' => '</sup>',
    
'[quote]' => '<blockquote><hr />',
    
'[/quote]' => '<hr /></blockquote>',
    
'[br]' => '<br />'
    
);
    
$links=explode('|',$db_var['link']);
    
$bbcodes2 = array(
    
'\\[img\\]([^\\\'\;\?([]*)\.(jpg|jpeg|gif|png)\\[/img\\]' => '<img src="\\1.\\2" alt="" />',
    
'\\[img=([^\\\'\;\?([]*)\.(jpg|jpeg|gif|png)\\]([^\\[]*)\.(jpg|jpeg|gif|png)\\[/img\\]' => '<a href="\\1.\\2"><img src="\\3.\\4" alt="" /></a>',
    
'\\[thumb=([^\\\'\;\?([]*)\.(jpg|jpeg|gif|png)\\]([^\\[]*)\.(jpg|jpeg|gif|png)\\[/thumb\\]' => ' <a href="pfs.php?m=view&amp;v=\\3.\\4"><img src="\\1.\\2" alt="" /></a>',
    
'\\[t=([^\\\'\;\?([]*)\.(jpg|jpeg|gif|png)\\]([^\\[]*)\.(jpg|jpeg|gif|png)\\[/t\\]' => '<a href="\\3.\\4"><img src="\\1.\\2" alt="" /></a>',
    
'\\[url=([^\\\'\;([]*)\\]([^\\[]*)\\[/url\\]' => $links[0].'"\\1">\\2'.$links[1],
    
'\\[url\\]([^\\([]*)\\[/url\\]' => $links[0].'"\\1">\\1'.$links[1],
    
'\\[urlb=([^\\\'\;([]*)\\]([^\\[]*)\\[/urlb\\]' => '<a class="ll3" target="_blank" href="\\1">\\2</a>',
    
'\\[urlb\\]([^\\([]*)\\[/urlb\\]' => '<a class="ll3" target="_blank" href="\\1">\\1</a>',
    
'\\[color=([a-zA-Z]*|\#?[0-9a-fA-F]{6})\\]([^\\[]*)\\[/color\\]' => '<span style="color:\\1">\\2</span>',
    
'\\[class=([0-9a-zA-Z]{1,10})\\]([^\\[]*)\\[/class\\]' => '<span class="\\1">\\2</span>',
    
'\\[style=([1-9]{1})\\]([^\\[]*)\\[/style\\]' => '<span class="bbstyle\\1">\\2</span>',
    
'\\[size=([1-9]{1})\\]([^\\[]*)\\[/size\\]' => '<h\\1>\\2</h\\1>',
    
'\\[email=([._A-z0-9-]+@[_A-z0-9-]+\.[.a-z]+)\\]([^\\[]*)\\[/email\\]' => '<a href="mailto:\\1">\\2</a>',
    
'\\[email\\]([._A-z0-9-]+@[_A-z0-9-]+\.[.a-z]+)\\[/email\\]' => '<a href="mailto:\\1">\\1</a>',
    
'\\[user=([0-9]+)\\]([A-z0-9_\. ]+)\\[/user\\]' => '<a href="users.php?m=details&amp;id=\\1">\\2</a>',
    
'\\[ac=([^\\[]*)\\]([^\\[]*)\\[/ac\\]' => '<acronym title="\\1">\\2</acronym>',
    
'\\[list=([a-zA-Z]*)\\]([^\\[]*)\\[/list\\]' => '<ul type="\\1">\\2</ul>',
    
'\\[list\\]([^\\[]*)\\[/list\\]' => '<ul>\\1</ul>',
    
'\\[icq\\]([1-9]{1,9})\\[/icq\\]' => '<a href="http://www.icq.com/\\1#pager"><img border=0 src="http://status.icq.com/online.gif?icq=\\1&amp;img=5" alt="" /></a>',
    
'\\[quote=([^\\[]*)\\]' => '<blockquote>\\1<hr />',
    
'\\[colleft\\]([^\\[]*)\\[/colleft\\]' => '<div class="colleft">\\1</div>',
    
'\\[colright\\]([^\\[]*)\\[/colright\\]' => '<div class="colright">\\1</div>',
    
'\\[center\\]([^\\[]*)\\[/center\\]' => '<div style="text-align:center;">\\1</div>',
    
'\\[right\\]([^\\[]*)\\[/right\\]' => '<div style="text-align:right;">\\1</div>',
    
'\\[left\\]([^\\[]*)\\[/left\\]' => '<div style="text-align:left;">\\1</div>'
    
);

    foreach(
$bbcodes1 as $bbcode => $bbcodehtml)
    { 
$text str_replace($bbcode,$bbcodehtml,$text); }

    foreach(
$bbcodes2 as $bbcode => $bbcodehtml)
    { 
$text eregi_replace($bbcode,$bbcodehtml,$text); }

    return(
substr($text,1));
}


/* ------------------ */

function BBparseurls($text)
{
    
$text ' '.$text;
    
$text preg_replace("#([\n ])([a-z0-9]+?)://([^\t \n\r]+)#i""\\1[urlb]\\2://\\3[/urlb]"$text);
    
$text preg_replace("#([\n ])([a-z0-9]+?)://([^\t \n\r]+)#i""\\1[url]\\2://\\3[/url]"$text);
    
$text preg_replace("#([\n ])([a-z0-9-_.]+?@[A-z0-9-]+\.[^,\t \n\r]+)#i""\\1[email]\\2[/email]"$text);
    return(
substr($text,1));

Нету тут нечего критического?
 
Ответить с цитированием