Credo di averlo migliorato... che ne dite?
codice:
$txt=preg_replace("#\[img\](.*?)\[/img\]#si", "<img src=\"\\1\" border=\"0\" alt=\"Obrazek\" />",$txt);
$txt=preg_replace("#\[email\]([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#i","<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",$txt);
$txt=preg_replace("#\[email=([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)?(.*?)\](.*?)\[/email\]#i","<a href=\"mailto:\\1@\\2\">\\5</a>",$txt);
$txt=preg_replace("#\[url\](.*?)?(.*?)\[/url\]#si","<A HREF=\"\\1\\2\" TARGET=\"_blank\">\\1\\2</A>",$txt);
$txt=preg_replace("#\[url=(.*?)?(.*?)\](.*?)\[/url\]#si","<A HREF=\"\\2\" TARGET=\"_blank\">\\3</A>",$txt);
$txt=preg_replace("#\[size=(http://)?(.*?)\](.*?)\[/size\]#si","<span style=\"font-size:\\2\">\\3</span>",$txt);
$txt=preg_replace("#\[color=(http://)?(.*?)\](.*?)\[/color\]#si","<span style=\"color:\\2\">\\3</span>",$txt);
$txt=preg_replace("#\[b\](.*?)\[/b\]#si","\\1",$txt);
$txt=preg_replace("#\[i\](.*?)\[/i\]#si","\\1",$txt);
$txt=preg_replace("#\[u\](.*?)\[/u\]#si","<u>\\1</u>",$txt);