前面见到有人发表
但是速度比较慢,也非常长
这里给出一种
function ubb($str) {
$color=Array('red','blue','green');
$str=eregi_replace('[url]([a-zA-Z0-9@:%_.~#-?&]+)[/url]','
\1',$str);//url
$str=eregi_replace('[url=http://([a-zA-Z0-9@:%_.~#-?&]+)](.+)[/url]','
\2',$str);
$str=eregi_replace('[url=([a-zA-Z0-9@:%_.~#-?&]+)](.+)[/url]','
\2',$str);
$str=eregi_replace('[img]([a-zA-Z0-9@:%_.~#-?&]+)[/img]','

\1',$str);//img
$str=eregi_replace('[h([1-6])](.+)[/h[1-6]]','
\2\1>',$str);//h1-6
$str=eregi_replace('[email]([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})[/email]','
\1',$str);//email
$str=eregi_replace('[email=([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})](.+)[/email]','
\2',$str);
$str=eregi_replace('[b](.+)[/b]','
\1',$str);
$str=eregi_replace('[i](.+)[/i]','
\1',$str);
$str=eregi_replace('[size=(.+)](.+)[/size]','
\2',$str);
$str=eregi_replace('[color=(.+)](.+)[/color]','
\2',$str);
$str=eregi_replace('[sub](.+)[/sub]','
\1',$str);//下裱
$str=eregi_replace('[sup](.+)[/sup]','\1',$str);//上标
for($i=0;$i\1',$str);
$str=PReg_replace("/[quote](.+?)[/quote]/is","quote:\1
", $str);
$str=preg_replace("/[code](.+?)[/code]/is","
code:
\1
", $str);
$str=preg_replace("/[sig](.+?)[/sig]/is","
--------------------------
\1
--------------------------
", $str);
return $str;
}