一个ubbcode的函数,速度很快.

5年以前  |  阅读数:405 次  |  编程语言:PHP 

前面见到有人发表
但是速度比较慢,也非常长
这里给出一种

function ubb($str) {
$color=Array('red','blue','green');
$str=eregireplace('\[url\]([a-zA-Z0-9@:%.~#-\?&]+)\[\/url\]','\\1',$str);//url
$str=eregireplace('\[url=http://([a-zA-Z0-9@:%.~#-\?&]+)\](.+)\[\/url\]','\\2',$str);
$str=eregireplace('\[url=([a-zA-Z0-9@:%.~#-\?&]+)\](.+)\[\/url\]','\\2',$str);
$str=eregireplace('\[img\]([a-zA-Z0-9@:%.~#-\?&]+)\[\/img\]','\\1',$str);//img
$str=eregi_replace('\h([1-6])\\[\/h[1-6]\]','<h\\1>\\2</h\\1>',$str);//h1-6
$str=eregireplace('\[email\]([\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})\[\/email\]','\\1',$str);//email
$str=eregireplace('\[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<=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;
}

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例