喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

【村长请吃饭啊】 ---北京诚聘--- 【你还在犹豫吗?】

上一主题 下一主题
     
标题: [原创] php Ubb类  
 
piaofengnet
中级会员
Rank: 3Rank: 3



UID 82620
精华 0
积分 230
帖子 106
金钱 230 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-11-4
状态 离线
php Ubb类

以下是本人开发论坛时候用的类,感觉速度不错。可以快速匹配到。效率明显提高,建议大家用。
如果有什么问题可以直接贴出来..

<?php
/*
程序设计: 林建炫(飘枫设计室)
made in 陆丰 by 2007-03-07 中午
QQ: 5818500
Email: [email]linzhenxuan@163.com[/email]
如果你使用、修改请保留该信息!
功能: Ubb类
优点: 比普通ubb多了快速Ubb配对相应的html问题。
*/
Class Cls_Ubb
{
var 
$type='';
    Function 
_htm($string)
    {
        if(!
$string){return "";}
        if(
ereg("<(.+)*>(.+)*</(.+)*>",$string))
        {
            
$string eregi_replace("<","&lt;",$string);
            
$string eregi_replace(">","&gt;",$string);
        }
        if(
eregi("[(/*b)]",$string)){$this->type.="1,";}
        if(
eregi("[(/*i)]",$string)){$this->type.="2,";}
        if(
eregi("[(/*u)]",$string)){$this->type.="3,";}
        if(
eregi("[align=([a-zA-Z]*)]",$string)){$this->type.="4,";}
        if(
eregi("[fly](.+)*[/fly]",$string)){$this->type.="5,";}
        if(
eregi("[move](.+)*[/move]",$string)){$this->type.="6,";}
        if(
eregi("[light](.+)*[/light]",$string)){$this->type.="7,";}
        if(
eregi("[SHADOW=([0-9]{1,3}),([a-zA-Z]*),([0-9]{1,})](.+)*[/shadow]",$string)){$this->type.="8,";}
        if(
eregi("[url=(.+)](.+)[/url]",$string)){$this->type.="9,";}
        if(
eregi("[email]([a-zA-Z0-9]{1,}@([a-zA-Z0-9]{1,}.[a-zA-Z0-9]{1,})*)[/email]",$string)){$this->type.="10,";}
        if(
eregi("[em([0-9]{1,})]",$string)){$this->type.="11,";}
        if(
eregi("[img](.+)*[/img]",$string)){$this->type.="12,";}
        if(
eregi("[flash=*([0-9]*),*([0-9]*)](.+)*[/flash]",$string)){$this->type.="13,";}
        if(
eregi("[mp=*([0-9]{1,3}),([0-9]{1,3})](.+)*[/mp]",$string)){$this->type.="14,";}
        if(
eregi("[rm=([0-9]{1,3}),([0-9]{1,3})](.+)*[/rm]",$string)){$this->type.="15,";}
        if(
eregi("[sound](.+)*[/sound]",$string)){$this->type.="16,";}
        if(
eregi("[code](.+)*[/code]",$string)){$this->type.="17,";}
        if(
eregi("[sup](.+)*[/sup]",$string)){$this->type.="18,";}
        if(
eregi("[sub](.+)*[/sub]",$string)){$this->type.="19,";}
        if(
eregi("[color=(.+)*](.+)*[/color]",$string)){$this->type.="20,";}
        if(
eregi("[size=([0-9]{1})](.+)*[/size]",$string)){$this->type.="21,";}
        if(
$this->type){$this->type=substr($this->type,0,(strlen($this->type)-1));}
        return 
$string;
    }
    Function 
_ubb($string,$type='')
    {
    Global 
$rand;
    
$type str_replace(" ","",$type);
    
$rand rand();
        if(!
$string)
        {
            break;
        }
        else
        {
            if(!
$type)
            {
                
$string eregi_replace("[(/*b)]","<\1>",$string);
                
$string eregi_replace("[(/*i)]","<\1>",$string);
                
$string eregi_replace("[(/*u)]","<\1>",$string);
                
$string eregi_replace("[align=([a-zA-Z]*)]","<p align=\1>",$string);
                
$string eregi_replace("[(/align)]","<\1>",$string);
                
$string eregi_replace("[fly](.+)*[/fly]","<marquee width=90% behavior=alternate scrollamount=3>\1</marquee>",$string);
                
$string eregi_replace("[move](.+)*[/move]","<MARQUEE scrollamount=3>\1</marquee>",$string);
                
$string eregi_replace("[light](.+)*[/light]","<span style=\"behavior:url(Inc/font.htc)\">\1</span>",$string);
                
$string eregi_replace("[SHADOW=([0-9]{1,3}),([a-zA-Z]*),([0-9]{1,})](.+)*[/shadow]","<table width=\1 ><tr><td style=\"filter:shadow(color=\2, stregExngth=\3)\">\4</td></tr></table>",$string);
                
$string eregi_replace("[url=(.+)](.+)[/url]","<a href=\2>\1</a>",$string);
                
$string eregi_replace("[email]([a-zA-Z0-9]{1,}@([a-zA-Z0-9]{1,}.[a-zA-Z0-9]{1,})*)[/email]","<a href=mailto:\1>\1</a>",$string);
                
$string eregi_replace("[em([0-9]{1,})]","<img src=\"imagesEmotionsem\1.gif\">",$string);
                
$string eregi_replace("[img](.+)*[/img]","<img src=\1>",$string);
                
$string eregi_replace("[flash=*([0-9]*),*([0-9]*)](.+)*[/flash]","<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=\1 height=\2><PARAM NAME=movie VALUE=\"\3\"><PARAM NAME=quality VALUE=high><embed src=\"\3\" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=\1 height=\2></embed></OBJECT>",$string);
                
$string eregi_replace("[mp=*([0-9]{1,3}),([0-9]{1,3})](.+)*[/mp]","<br><b>此主题相关媒体如下:<a href=\"\3\" TARGET=_blank>(点这里下载)</a></b><br><object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=\1 height=\2 >\" & vbcrlf & \"<param name=ShowStatusBar value=-1>\" & vbcrlf & \"<param name=Filename value=\3>\" & vbcrlf & \"<embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=\3 width=\1 height=\2>\" & vbcrlf & \"</embed>\" & vbcrlf & \"</object>",$string);
                
$string eregi_replace("[rm=([0-9]{1,3}),([0-9]{1,3})](.+)*[/rm]","<b>这个是 RealPlayer 音乐:</b><br><object classid=clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=280 height=70><param name=_ExtentX value=7938><param name=_ExtentY value=2646><param name=AUTOSTART value=0><param name=SHUFFLE value=0><param name=PREFETCH value=0><param name=NOLABELS value=0><param name=LOOP value=0><param name=NUMLOOP value=0><param name=CENTER value=0><param name=MAINTAINASPECT value=0><param name=BACKGROUNDCOLOR value=#000000><PARAM NAME=SRC VALUE=\3></object>",$string);
                
$string eregi_replace("[sound](.+)*[/sound]","<a href=\"\1\" target=_blank><IMG SRC=Images/mid.gif border=0 alt='背景音乐'></a><bgsound src=\"\1\" loop=\"-1\">",$string);
                
$string eregi_replace("[code](.+)*[/code]","<div align='center'><table border='0' width='90%' id='table7' cellspacing='0' cellpadding='0'><tr><td style='border: 1px solid #F9F9F9' bgcolor='#FFFBE8' height='20'><b><font color='#515100'>Code:</font></b></td></tr><tr><td style='border: 1px solid #F5F5F5' id='".$rand."'>\1</td></tr><tr><td style='border: 1px solid #F5F5F5'><input type=button value='运行这个代码' onclick='javascript:PopIt(\"代码预览\",\"".$rand."\")'></td></tr></table></div>",$string);
                
$string eregi_replace("[sup](.+)*[/sup]","<sup>\1</sup>",$string);
                
$string eregi_replace("[sub](.+)*[/sub]","<sub>\1</sub>",$string);
                
$string eregi_replace("[color=(.+)*](.+)*[/color]","<font color=\1>\2</font>",$string);
                
$string eregi_replace("[size=([0-9]{1})](.+)*[/size]","<font size=\1>\2</font>",$string);
            }
            else
            {
                
$method explode(",",$type);
                
//for($i=0;$i<=(count($method)-1);$i++)
                //{
                
foreach($method as $x)
                {
                    Switch(
$x)
                    {
                        case 
"1":
                            
$string eregi_replace("[(/*b)]","<\1>",$string);
                        break;
                        case 
"2":
                            
$string eregi_replace("[(/*i)]","<\1>",$string);
                        break;
                        case 
"3":
                            
$string eregi_replace("[(/*u)]","<\1>",$string);
                        break;
                        case 
"4":
                            
$string eregi_replace("[align=([a-zA-Z]*)]","<p align=\1>",$string);
                            
$string eregi_replace("[(/align)]","<\1>",$string);
                        break;
                        case 
"5":
                            
$string eregi_replace("[fly](.+)*[/fly]","<marquee width=90% behavior=alternate scrollamount=3>\1</marquee>",$string);
                        break;
                        case 
"6":
                            
$string eregi_replace("[move](.+)*[/move]","<MARQUEE scrollamount=3>\1</marquee>",$string);
                        break;
                        case 
"7":
                            
$string eregi_replace("[light](.+)*[/light]","<span style=\"behavior:url(Inc/font.htc)\">\1</span>",$string);
                        break;
                        case 
"8":
                            
$string eregi_replace("[SHADOW=([0-9]{1,3}),([a-zA-Z]*),([0-9]{1,})](.+)*[/shadow]","<table width=\1 ><tr><td style=\"filter:shadow(color=\2, stregExngth=\3)\">\4</td></tr></table>",$string);
                        break;
                        case 
"9":
                            
$string eregi_replace("[url=(.+)](.+)[/url]","<a href=\2>\1</a>",$string);
                        break;
                        case 
"10":
                            
$string eregi_replace("[email]([a-zA-Z0-9]{1,}@([a-zA-Z0-9]{1,}.[a-zA-Z0-9]{1,})*)[/email]","<a href=mailto:\1>\1</a>",$string);
                        break;
                        case 
"11":
                            
$string eregi_replace("[em([0-9]{1,})]","<img src=\"imagesEmotionsem\1.gif\">",$string);
                        break;
                        case 
"12":
                            
$string eregi_replace("[img](.+)*[/img]","<img src=\1>",$string);
                        break;
                        case 
"13":
                            
$string eregi_replace("[flash=*([0-9]*),*([0-9]*)](.+)*[/flash]","<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=\1 height=\2><PARAM NAME=movie VALUE=\"\3\"><PARAM NAME=quality VALUE=high><embed src=\"\3\" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=\1 height=\2></embed></OBJECT>",$string);
                        break;
                        case 
"14":
                            
$string eregi_replace("[mp=*([0-9]{1,3}),([0-9]{1,3})](.+)*[/mp]","<br><b>此主题相关媒体如下:<a href=\"\3\" TARGET=_blank>(点这里下载)</a></b><br><object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=\1 height=\2 >\" & vbcrlf & \"<param name=ShowStatusBar value=-1>\" & vbcrlf & \"<param name=Filename value=\3>\" & vbcrlf & \"<embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=\3 width=\1 height=\2>\" & vbcrlf & \"</embed>\" & vbcrlf & \"</object>",$string);
                        break;
                        case 
"15":
                            
$string eregi_replace("[rm=([0-9]{1,3}),([0-9]{1,3})](.+)*[/rm]","<b>这个是 RealPlayer 音乐:</b><br><object classid=clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=280 height=70><param name=_ExtentX value=7938><param name=_ExtentY value=2646><param name=AUTOSTART value=0><param name=SHUFFLE value=0><param name=PREFETCH value=0><param name=NOLABELS value=0><param name=LOOP value=0><param name=NUMLOOP value=0><param name=CENTER value=0><param name=MAINTAINASPECT value=0><param name=BACKGROUNDCOLOR value=#000000><PARAM NAME=SRC VALUE=\3></object>",$string);
                        break;
                        case 
"16":
                            
$string eregi_replace("[sound](.+)*[/sound]","<a href=\"\1\" target=_blank><IMG SRC=Images/mid.gif border=0 alt='背景音乐'></a><bgsound src=\"\1\" loop=\"-1\">",$string);
                        break;
                        case 
"17":
                            
$string eregi_replace("[code](.+)*[/code]","<div align='center'><table border='0' width='90%' id='table7' cellspacing='0' cellpadding='0'><tr><td style='border: 1px solid #F9F9F9' bgcolor='#FFFBE8' height='20'><b><font color='#515100'>Code:</font></b></td></tr><tr><td style='border: 1px solid #F5F5F5' id='".$rand."'>\1</td></tr><tr><td style='border: 1px solid #F5F5F5'><input type=button value='运行这个代码' onclick='javascript:PopIt(\"代码预览\",\"".$rand."\")'></td></tr></table></div>",$string);
                        break;
                        case 
"18":
                            
$string eregi_replace("[sup](.+)*[/sup]","<sup>\1</sup>",$string);
                        break;
                        case 
"19":
                            
$string eregi_replace("[sub](.+)*[/sub]","<sub>\1</sub>",$string);
                        break;
                        case 
"20":
                            
$string eregi_replace("[color=(.+)*](.+)*[/color]","<font color=\1>\2</font>",$string);
                        break;
                        case 
"21":
                            
$string eregi_replace("[size=([0-9]{1})](.+)*[/size]","<font size=\1>\2</font>",$string);
                        break;
                    }
                }
            }
        }
        
$string nl2br($string);
        return 
$string;
    }
}
//end class
/*
使用方法:
    $ubb = New Cls_ubb;//设置$ubb
    $htm = $ubb->_htm('[u]jfkd[/u][i]fdasfsa[/i]<u>jkdfs</u>');//把htm转成ubb,把ubb转成html。
    $type = $ubb->type;//得到响应的ubb号码数
    echo $htm;//输出html
    echo $ubb->_UBB($htm);//把ubb转成html。本句可以使用echo $ubb->_UBB($htm,$type)可以快速配对入好
*/
?>
2007-6-8 01:07 AM#1
查看资料  Blog  发短消息  顶部
 
km3945 (km3945)
版主
Rank: 7Rank: 7Rank: 7
版主


UID 46538
精华 0
积分 1291
帖子 1259
金钱 1291 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-11-8
状态 离线
[推荐阅读] flush有环境限制?
make



学会用下半身来思考!
2007-6-8 04:41 AM#2
查看资料  Blog  发短消息  QQ  顶部
 
klht (宇宙)
中级会员
Rank: 3Rank: 3


UID 77270
精华 0
积分 427
帖子 1082
金钱 426 喜悦币
威望 0
人脉 1
阅读权限 30
注册 2006-7-30
来自 UN星系
状态 离线
[推荐阅读] 寻求长期兼职合作的网站开发及维护工作
收藏了,   谢谢分享



什么时候才能找到梦寐以求的PHPER工作...
2007-6-8 09:00 AM#3
查看资料  访问主页  Blog  发短消息  顶部
 
niohe (网缘伟伟)
论坛元老
Rank: 8Rank: 8
PHPOX


UID 73469
精华 0
积分 3111
帖子 541
金钱 3111 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2006-5-16
来自 吉林延边
状态 离线
[推荐阅读] 如何实现大视频文件的在线上传
嗷嗷顶!
准备收藏!




QQ:86958842,承接各种小型网站项目.我的BLOG http://www.aitao8.cn/
2007-6-8 01:40 PM#4
查看资料  访问主页  发短消息  QQ  顶部
 
rjp_ww
注册会员
Rank: 2
初级会员


UID 67694
精华 0
积分 159
帖子 416
金钱 159 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-1-2
状态 离线
[推荐阅读] CN域名1元 COM 国际域名48元
jfkdfdasfsa<u>jkdfs</u>[<>]j<sub>p>="-1">>;
2007-6-12 08:36 AM#5
查看资料  发短消息  顶部
 
airwin
新手上路
Rank: 1



UID 77757
精华 0
积分 34
帖子 37
金钱 34 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-8-5
状态 离线
[推荐阅读] 上海真如|外高桥|双线双IP机房服务器托管机柜租用,15301791370,朱红中
好东西 !
2007-6-18 02:44 PM#6
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.048428 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP