<?php
function text2bbc($text){
$find = array(
'~\[b\](.*?)\[/b\]~s',
'~\[i\](.*?)\[/i\]~s',
'~\[u\](.*?)\[/u\]~s',
'~\[size=(.*?)\](.*?)\[/size\]~s',
'~\[color=(.*?)\](.*?)\[/color\]~s'
);
$replace = array(
'<b>$1</b>',
'<i>$1</i>',
'<span style="text-decoration:underline;">$1</span>',
'<span style="font-size:$1px;">$2</span>',
'<span style="color:$1;">$2</span>'
);
return preg_replace($find,$replace,$text);
}
echo text2bbc('this is some [b]bold text[/b] and this is [color=#FF0000]Red text[/color]');
echo'<br>';
echo text2bbc('this text is [i]italic[/i] and this is not');
echo'<br>';
echo text2bbc('here we have [u]underlined[/u] text');
echo'<br>';
echo text2bbc('this is [size=24]24px[/size] font');
?>
this is some <b>bold text</b> and this is <span style="color:#FF0000;">Red text</span><br>this text is <i>italic</i> and this is not<br>here we have <span style="text-decoration:underline;">underlined</span> text<br>this is <span style="font-size:24px;">24px</span> font