Codice PHP:
function bbcode_format($string , $emoticon = 1)
{
$string = htmlspecialchars($string, ENT_QUOTES);
$string = preg_replace("#\[url\](?!http://)(.+)\[\/url\]#si", "[url=http://$1]$1[/url]", $string);
$patterns = array(
'`\[b\](.+?)\[/b\]`Usi',
'`\[i\](.+?)\[/i\]`Usi',
'`\[u\](.+?)\[/u\]`Usi',
'`\[s\](.+?)\[/s\]`Usi',
'`\[strike\](.+?)\[/strike\]`Usi',
'`\[left\](.+?)\[/left\]`Usi',
'`\[center\](.+?)\[/center\]`Usi',
'`\[right\](.+?)\[/right\]`Usi',
"#\[ul\](.+)\[li\](.+)\[/li\](.+)\[/ul\]#Usi",
"#\
[list\](.+)\[/list\]#Usi",
'#\[font=(.+)\](.+)\[/font\]#Usi',
'#\[color=([a-zA-Z]*|\#?[0-9a-fA-F]{6})](.+)\[/color\]#Usi',
'#\[size=([0-9][0-9]?)](.+)\[/size\]#Usi',
'#\[quote](\r\n)?(.+?)\[/quote]#si',
'#\[quote=(.*?)](\r\n)?(.+?)\[/quote]#si',
'#\[email]([\w\.\-]+@[a-zA-Z0-9\-]+\.?[a-zA-Z0-9\-]*\.\w{1,4})\[/email]#Usi',
'#\[url](.+)\[/url]#Usi',
'#\[email=([\w\.\-]+@[a-zA-Z0-9\-]+\.?[a-zA-Z0-9\-]*\.\w{1,4})](.+)\[/email]#Usi',
'#\[url=(.+)](.+)\[/url\]#Usi',
'#\[urloff](.+)\[/urloff]#Usi',
'#\[urloff=(.+)\](.+)\[/urloff\]#Usi',
'#\[img](.+)\[/img]#Usi',
'#\[img=(.+)](.+)\[/img]#Usi',
'#\[code](\r\n)?(.+?)(\r\n)?\[/code]#si',
'#\[youtube]http://[a-z]{0,3}.youtube.com/watch\?v=([0-9a-zA-Z]{1,11})\[/youtube]#Usi',
'#\[youtube]([0-9a-zA-Z]{1,11})\[/youtube]#Usi',
'#\[dmmedium]([0-9a-zA-Z]{1,20})\[/dmmedium]#Usi',
'#\[dmsmall]([0-9a-zA-Z]{1,20})\[/dmsmall]#Usi',
'#\[vimeo]http://www.vimeo.com/([0-9]{1,10})\[/vimeo]#Usi',
'#\[vimeo]([0-9]{1,10})\[/vimeo]#Usi',
);
$replace = array(
'<b> $1</b>',
'<i> $1</i>',
'<u> $1</u>',
'<s> $1</s>',
'<strike> $1</strike>',
'<div align="left"> $1</div>',
'<div align="center"> $1</div>',
'<div align="right"> $1</div>',
'<ul compact ><li> $1</li></ul>',
'<ul compact ><li> $1</li></ul>',
'<font face=" $1">$2</font>',
'<span style="color: $1">$2</span>',
'<span style="font-size: $1px">$2</span>',
"<div class=\"quote\"><span class=\"quoteby\">Disse:</span>\r\n$2</div>",
"<div class=\"quote\"><span class=\"quoteby\">Disse <b>$1</b>:</span>\r\n$3</div>",
'<a href="mailto: $1">$1</a>',
'<a href="$1">$1</a>',
'<a href="mailto: $1">$2</a>',
'<a href="$1">$2</a>',
'<a href="$1" target="_blank">$1</a>',
'<a href="$1" target="_blank">$2</a>',
'<img src="$1" alt="$1" />',
'<img src="$1" alt="$2" />',
'<div class="code">$2</div>',
'<object type="application/x-shockwave-flash" style="width: 450px; height: 366px;" data="http://www.youtube.com/v/$1"><param name="movie" value="http://www.youtube.com/v/$1" /><param name="wmode" value="transparent" /></object>',
'<object type="application/x-shockwave-flash" style="width: 450px; height: 366px;" data="http://www.youtube.com/v/$1"><param name="movie" value="http://www.youtube.com/v/$1" /><param name="wmode" value="transparent" /></object>',
'<object type="application/x-shockwave-flash" style="width: 420px; height: 365px;" data="http://dailymotion.alice.it/swf/$1"><param name="movie" value="http://dailymotion.alice.it/swf/$1" /><param name="allowScriptAccess" value="always" /></object>',
'<object type="application/x-shockwave-flash" style="width: 220px; height: 185px;" data="http://dailymotion.alice.it/swf/$1"><param name="movie" value="http://dailymotion.alice.it/swf/$1" /><param name="allowScriptAccess" value="always" /></object>',
'<object type="application/x-shockwave-flash" style="width: 400px; height: 327px;" data="http://vimeo.com/moogaloop.swf?clip_id=$1"><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=$1" /><param name="allowScriptAccess" value="always" /></object>',
'<object type="application/x-shockwave-flash" style="width: 400px; height: 327px;" data="http://vimeo.com/moogaloop.swf?clip_id=$1"><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=$1" /><param name="allowScriptAccess" value="always" /></object>'
);
$string = preg_replace ($patterns, $replace, $string);
return $string;
}