A ubbcode function is very fast.
However, the speed is slow and long.
Here is
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 ', $ 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); // mount
$ Str = eregi_replace ('\ [sup \] (. +) \ [\/sup \]', '\ 1', $ str); // supermark
For ($ I = 0; $ I <= count ($ color); $ I ++) $ str = eregi_replace ('\['. $ color [$ I]. '\] (. + )\[\/'. $ color [$ 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;
}