一个ubbcode的函数,速度很快.
类别: PHP教程
前面见到有人发表
但是速度比较慢,也非常长
这里给出一种
function ubb($str) {
$color=Array('red','blue','green');
$str=eregi_replace('[url]([a-zA-Z0-9@:%_.~#-?&]+)[/url]','<a href=http://\\1>\\1</a>',$str);//url
$str=eregi_replace('[url=http://([a-zA-Z0-9@:%_.~#-?&]+)](.+)[/url]','<a href=\\1 target=_blank>\\2</a>',$str);
$str=eregi_replace('[url=([a-zA-Z0-9@:%_.~#-?&]+)](.+)[/url]','<a href=http://\\1 target=_blank>\\2</a>',$str);
$str=eregi_replace('[img]([a-zA-Z0-9@:%_.~#-?&]+)[/img]','<img src=http://\\1>\\1</img>',$str);//img
$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;
}
但是速度比较慢,也非常长
这里给出一种
function ubb($str) {
$color=Array('red','blue','green');
$str=eregi_replace('[url]([a-zA-Z0-9@:%_.~#-?&]+)[/url]','<a href=http://\\1>\\1</a>',$str);//url
$str=eregi_replace('[url=http://([a-zA-Z0-9@:%_.~#-?&]+)](.+)[/url]','<a href=\\1 target=_blank>\\2</a>',$str);
$str=eregi_replace('[url=([a-zA-Z0-9@:%_.~#-?&]+)](.+)[/url]','<a href=http://\\1 target=_blank>\\2</a>',$str);
$str=eregi_replace('[img]([a-zA-Z0-9@:%_.~#-?&]+)[/img]','<img src=http://\\1>\\1</img>',$str);//img
$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;
}
- 上一篇: 也谈截取首页新闻 - 范例
- 下一篇: 关于文本留言本的分页代码
-= 资 源 教 程 =-
文 章 搜 索