| EST a1ien |
26.10.2007 14:04 |
Ди и еще что думаете по поводу вот такой реализации 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>',
'[_]' => ' ',
'[__]' => ' ',
'[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&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&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&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));
}
Нету тут нечего критического?
|