一个ubbcode的函数,速度很快.
2018-09-07 12:27
前面见到有人发表
但是速度比较慢,也非常长
这里给出一种
function ubb($str) {
$color=Array(red,blue,green);
$str=eregi_replace(\[url\]([a-zA-Z0-9@:%_.~#-\?&]+)\[\/url\],<a href=
$str=eregi_replace(\[url=
$str=eregi_replace(\[url=([a-zA-Z0-9@:%_.~#-\?&]+)\](.+)\[\/url\],<a href=
$str=eregi_replace(\[img\]([a-zA-Z0-9@:%_.~#-\?&]+)\[\/img\],<img src=
$str=eregi_replace(\[h([1-6])\](.+)\[\/h[1-6]\],<h\\1>\\2</h\\1>,$str);//h1-6
$str=eregi_replace(\[email\]([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})\[\/email\],<a href=mailto:\\1>\\1</a>,$str);//email
$str=eregi_replace(\[email=([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})\](.+)\[\/email\],<a href=mailto:\\1>\\2</a>,$str);
$str=eregi_replace(\[b\](.+)\[\/b\],<b>\\1</b>,$str);
$str=eregi_replace(\[i\](.+)\[\/i\],<i>\\1</i>,$str);
$str=eregi_replace(\[size=(.+)\](.+)\[\/size\],<font size=\\1>\\2</font>,$str);
$str=eregi_replace(\[color=(.+)\](.+)\[\/color\],<font color=\\1>\\2</font>,$str);
$str=eregi_replace(\[sub\](.+)\[\/sub\],<sub>\\1</sup>,$str);//下裱
$str=eregi_replace(\[sup\](.+)\[\/sup\],<sup>\\1</sup>,$str);//上标
for($i=0;$i<=count($color);$i++)$str=eregi_replace(\[.$color[$i].\](.+)\[\/.$color[$i].\],<font color=.$color[$i].>\\1</font>,$str);
$str=preg_replace("/\[quote\](.+?)\[\/quote\]/is","<blockquote><font size=1 face=Courier New>quote:</font><hr>\\1<hr></blockquote>", $str);
$str=preg_replace("/\[code\](.+?)\[\/code\]/is","<blockquote><font size=1 face=Times New Roman>code:</font><hr color=lightblue><i>\\1</i><hr color=lightblue></blockquote>", $str);
$str=preg_replace("/\[sig\](.+?)\[\/sig\]/is","<div style=text-align: left;color: darkgreen;margin-left: 5%><br><br>--------------------------<br>\\1<br>--------------------------</div>", $str);
return $str;
}