一段PHP的UBB转换函数代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
function toubb($str){
 $str=htmlspecialchars($str);
 //$str = str_replace("file:","file :",$str);
 //$str = str_replace("files:","files :",$str);
 //$str = str_replace("script:","script :",$str);
 //$str = str_replace("js:","js :",$str);
 
 //图片UBB
 $str = preg_replace("/\[img\](http|https|ftp):\/\/(.[^\[]*)\[\/img\]/i", "<a onfocus=\"this.blur()\" href=\"\${1}://\${2}\" target=new><img src=\"\${1}://\${2}\" border=\"0\" alt=\"按此在新窗口浏览图片\" onload=\"javascript:if(this.width>300)this.width=300\"></a>", $str);
 $str = preg_replace("/\[img=*([0-9]*),*([0-9]*)\](http|https|ftp):\/\/(.[^\[]*)\[\/img\]/i", "<a onfocus=\"this.blur()\" href=\"\${3}://\${4}\" target=new><img src=\"\${3}://\${4}\" border=\"0\"  width=\"\${1}\" heigh=\"\${2}\" alt=\"按此在新窗口浏览图片\" onload=\"javascript:if(this.width>300)this.width=300\"></a>", $str);
 
 $str = preg_replace("/(\[img\])images\/face\/em(.*?)\.gif(\[\/img\])/i", "<img src=\"images/face/em\${2}.gif\" />", $str);
 //链接UBB
 $str = preg_replace("/(\[url\])(.[^\[]*)(\[url\])/i", "<a href=\"\${2}\" target=\"new\">\${1}</a>", $str);
 $str = preg_replace("/\[url=(.[^\[]*)\]/i", "<a href=\"\${1}\" target=\"new\">", $str);
 //邮箱UBB
 $str = preg_replace("/(\[email\])(.*?)(\[\/email\])/i", "<img align=\"absmiddle\" \"src=image/email1.gif\"><a href=\"mailto:\${2}\">\${2}</a>", $str);
 $str = preg_replace("/\[email=(.[^\[]*)\]/i", "<img align=\"absmiddle\" src=\"image/email1.gif\"><a href=\"mailto:\${1}\" target=\"new\">", $str);
 //QQ号码UBB
 $str = preg_replace("/\[qq=([0-9]*)\]([0-9]*)\[\/qq\]/i", "<a target=\"new\" href=\"tencent://message/?uin=\${2}&Site=www.52515.net&Menu=yes\"><img border=\"0\" src=\"http://wpa.qq.com/pa?p=1:\${2}:\${1}\" alt=\"点击这里给我发消息\"></a>", $str);
 //颜色UBB
 $str = preg_replace("/\[color=(.[^\[]*)\]/i", "<font color=\"\${1}\">", $str);
 //文字字体UBB
 $str = preg_replace("/\[font=(.[^\[]*)\]/i", "<font face=\"\${1}\">", $str);
 //文字大小UBB
 $str = preg_replace("/\[size=([0-9]*)\]/i", "<font size=\"\${1}\">", $str);
 $str = preg_replace("/\[size=([0-9]*)pt\]/i", "<font size=\"\${1}\">", $str);
 $str = preg_replace("/\[size=([0-9]*)px\]/i", "<font size=\"\${1}\">", $str);
 //文字对齐方式UBB
 $str = preg_replace("/\[align=(center|left|right)\]/i", "<div align=\"\${1}\">", $str);
 //表格UBB
 //$str = preg_replace("/\[table=(.[^\[]*)\]/i", "<table width=\"\${1}\" border=\"1\" style=\"border-collapse:collapse\">", $str);
 //表格UBB2
 //$str = preg_replace("/\[td=([0-9]*),([0-9]*),([0-9]*)\]/i", "<td colspan=\"\${1}\" rowspan=\"\${2}\" width=\"\${3}\">", $str);
 //字体倾斜
 $str = preg_replace("/\[i\]((.|\n)*?)\[\/i\]/i", "<i>\${1}</i>", $str);
 //FLASH动画UBB
 $str = preg_replace("/(\[flash\])(http:\/\/.[^\[]*(.swf))(\[\/flash\])/i", "<a href=\"\${2}\" target=\"new\"><img src=\"image/swf.gif\" border=\"0\" alt=\"点击开新窗口欣赏该flash动画!\" height=\"16\" width=\"16\">[全屏欣赏]</a><br><center><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=\"300\" height=\"200\"><param name=\"movie\" value=\"\${2}\"><param name=\"quality\" value=\"high\"><embed src=\"\${2}\" quality=\"high\" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash\" type=\"application/x-shockwave-flash\" width=\"300\" height=\"200\">\${2}</embed></object></center>", $str);
 $str = preg_replace("/(\[flash=*([0-9]*),*([0-9]*)\])(http:\/\/.[^\[]*(.swf))(\[\/flash\])/i", "<a href=\"\${4}\" target=\"new\"><img src=\"image/swf.gif\" border=\"0\" alt=\"点击开新窗口欣赏该flash动画!\" height=\"16\" width=\"16\">[全屏欣赏]</a><br><center><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=\"\${2}\" height=\"\${3}\"><param name=\"movie\" value=\"\${4}\"><param name=quality value=high><embed src=\"\${4}\" quality=\"high\" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash\" type=\"application/x-shockwave-flash\" width=\"\${2}\" height=\"\${3}\">\${4}</embed></object></center>", $str);
 
 //MEDIA PLAY播放UBB
 $str = preg_replace("/\[wmv\](.[^\[]*)\[\/wmv]/i", "<object align=\"middle\" classid=\"clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95\" class=\"object\" id=\"mediaplayer\" width=\"300\" height=\"200\" ><param name=\"showstatusbar\" value=\"-1\"><param name=\"filename\" value=\"\${1}\"><embed type=\"application/x-oleobject\" codebase=\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#version=5,1,52,701\" flename=\"mp\" src=\"\${1}\"  width=\"300\" height=\"200\"></embed></object>", $str);
 $str = preg_replace("/\[wmv=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/wmv]/i", "<object align=\"middle\" classid=\"clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95\" class=\"object\" id=\"mediaplayer\" width=\"\${1}\" height=\"\${2}\" ><param name=\"showstatusbar\" value=\"-1\"><param name=\"filename\" value=\"\${3}\"><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}\"></embed></object>", $str);
 
 //REALPLAY 播放UBB
 $str = preg_replace("/\[rm\](.[^\[]*)\[\/rm]/i", "<object classid=\"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa\" class=\"object\" id=\"raocx\" width=\"300\" height=\"200\"><param name=\"src\" value=\"\${1}\"><param name=\"console\" value=\"clip1\"><param name=\"controls\" value=\"imagewindow\"><param name=\"autostart\" value=\"true\"></object><br><object classid=\"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa\" height=\"32\" id=\"video2\" width=\"300\"><param name=\"src\" value=\"\${1}\"><param name=\"autostart\" value=\"-1\"><param name=\"controls\" value=\"controlpanel\"><param name=\"console\" value=\"clip1\"></object>", $str);
 $str = preg_replace("/\[rm=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/rm]/i", "<object classid=\"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa\" class=\"object\" id=\"raocx\" width=\"\${1}\" height=\"\${2}\"><param name=\"src\" value=\"\${3}\"><param name=\"console\" value=\"clip1\"><param name=\"controls\" value=\"imagewindow\"><param name=\"autostart\" value=\"true\"></object><br><object classid=\"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa\" height=\"32\" id=\"video2\" width=\"\${1}\"><param name=\"src\" value=\"\${3}\"><param name=\"autostart\" value=\"-1\"><param name=\"controls\" value=\"controlpanel\"><param name=\"console\" value=\"clip1\"></object>", $str);
    $str = str_replace("\r\n", "<BR/>", $str);
 $str = preg_replace("/\[rm=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/rm]/i", "<object classid=\"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa\" class=\"object\" id=\"raocx\" width=\"\${1}\" height=\"\${2}\"><param name=\"src\" value=\"\${3}\"><param name=\"console\" value=\"clip1\"><param name=\"controls\" value=\"imagewindow\"><param name=\"autostart\" value=\"true\"></object><br><object classid=\"clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa\" height=\"32\" id=\"video2\" width=\"\${1}\"><param name=\"src\" value=\"\${3}\"><param name=\"autostart\" value=\"-1\"><param name=\"controls\" value=\"controlpanel\"><param name=\"console\" value=\"clip1\"></object>", $str);
/*
 re.pattern="\[code\]((.|\n)*?)\[\/code\]"
 Set tempcodes=re.Execute($str)
 For i=0 To tempcodes.count-1
   re.pattern="<BR/>"
   tempcode=Replace(tempcodes(i),"<BR/>",vbcrlf)
   $str=replace($str,tempcodes(i),tempcode)
 next
*/
    $searcharray = array("[/url]","[/email]","[/color]", "[/size]", "[/font]", "[/align]", "[b]", "[/b]","[u]", "[/u]", "[list]", "[list=1]", "[list=a]","[list=A]", "[*]", "[/list]", "[indent]", "[/indent]","[ DISCUZ_CODE_0 ]","[quote]","[/quote]","[tr]","[td]","[/td]","[/tr]","[/table]");
 $replacearray= array("</a>","</a>","</font>", "</font>", "</font>", "</div>", "<b>", "</b>","<u>", "</u>", "<ul>", "<ol type=1>", "<ol type=a>","<ol type=A>", "<li>", "</ul></ol>", "<blockquote>", "</blockquote>","<div><textarea name=\"codes\" id=\"codes\" rows=\"12\" cols=\"65\">","</textarea><br/><input type=\"button\" value=\"运行代码\" onclick=\"RunCode()\"> <input type=\"button\" value=\"复制代码\" onclick=\"CopyCode()\"> <input type=\"button\" value=\"另存代码\" onclick=\"SaveCode()\"> <input type=\"button\" value=\"跳&nbsp;&nbsp;转\" onclick=\"Goto(prompt('请输入要跳转到第几行?','1'))\"  accesskey=\"g\"> &nbsp;提示:您可以先修改部分代码再运行</div>","<div style=\"background:#E2F2FF;width:90%;height:auto;border:1px solid #3CAAEC;padding:5px;\">","</div>","<tr>","<td>","</td>","</tr>","</table>");
 for ($i=0; $i<count($searcharray); $i++){
  $str = str_replace($searcharray[$i], $replacearray[$i], $str);
 }
 return $str;
}
/*
 're.Pattern="\[UPLOAD=(gif|jpg|jpeg|bmp)\](.[^\[]*)(gif|jpg|jpeg|bmp)\[\/UPLOAD\]"
 '$str= re.Replace($str,"<br><IMG SRC=\"image/$1.gif\" border=0>此主题相关链接如下:<br><A HREF=\"$2$1\" TARGET=_blank><IMG SRC=\"$2$1\" border=0 alt=按此在新窗口浏览图片 onload=\"javascript:if(this.width>screen.width-333)this.width=screen.width-333\"></A>")
 're.Pattern="\[UPLOAD=(doc|xls|ppt|htm|swf|rar|zip|exe)\](.[^\[]*)(doc|xls|ppt|htm|swf|rar|zip|exe)\[\/UPLOAD\]"
 '$str= re.Replace($str,"<br><IMG SRC=\"image/$1.gif\" border=0>此主题相关链接如下:<br><a href=\"$2$1\" target='_blank'>点击浏览该文件</a>")
 '自动识别网址
 're.Pattern = "^((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)"
 '$str = re.Replace($str,"<img align=absmiddle src=image/url.gif border=0><a target=_blank href=$1>$1</a>")
 're.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)$"
 '$str = re.Replace($str,"<img align=absmiddle src=image/url.gif border=0><a target=_blank href=$1>$1</a>")
 're.Pattern = "([^>=\"])((http|https|ftp|rtsp|mms):(\/\/|\\\\)[A-Za-z0-9\./=\?%\-&_~`@[\]\':+!]+)"
 '$str = re.Replace($str,"$1<img align=absmiddle src=image/url.gif border=0><a target=_blank href=$2>$2</a>")
 '自动识别www等开头的网址
 're.Pattern = "([^(http://|http:\\)])((www|cn)[.](\w)+[.]{1,}(net|com|cn|org|cc)(((\/[\~]*|\\[\~]*)(\w)+)|[.](\w)+)*(((([?](\w)+){1}[=]*))*((\w)+){1}([\&](\w)+[\=](\w)+)*)*)"
 '$str = re.Replace($str,"<img align=absmiddle src=image/url.gif border=0><a target=_blank href=http://$2>$2</a>")
 're.Pattern="\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.[^\[]*)\[\/SHADOW]"
 '$str=re.Replace($str,"<div style=\"width:$1;filter:shadow(color=$2, strength=$3)\">$4</div>")
 're.Pattern="\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.[^\[]*)\[\/GLOW]"
 '$str=re.Replace($str,"<div style=\"width:$1;filter:glow(color=$2, strength=$3)\">$4</div>")
*/
VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, ,

No Comments

【置顶】6.2/8 – SddrOJ开发进度

正在开发SDDR OnlineJudge,采用Windows+PHP+MySQL+后台评测服务,C/S模式。

0.数据库构建(Database)  90%

1.用户部分(UserReg, Login, Edit) 已完成

2.讨论部分(DiscussRead, Delete, New) 已完成

3.题目显示(ProbList, ProbRead) 已完成

4.网页评测部分(ProbSubmit, Test)  已完成

5.后台评测服务(Judge Service)  45%

6.比赛部分(Contest)  未完成

7.界面美化(Css, Images)  85%

VN:F [1.8.4_1055]
Rating: 9.9/10 (7 votes cast)
VN:F [1.8.4_1055]
Rating: +5 (from 5 votes)

,

12 Comments

本站被alexa收录

www.cngry.com
目前排名:14,614,129
比flyioi还高一点。。。

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

,

No Comments

快速查看诺基亚手机型号

在待机页面输入*#0000#即可

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, ,

No Comments

爆料

今天在google上乱搜,搜出这么个网页:中南大学湘雅二医院护理部。

http://nurse.flyioi.com

不知道这和flyioi有什么关系..

lxg不知道什么时候开始干这业务了。。。

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, ,

No Comments

百度知道上的牛人 左眼灵光 分数为-7700分

http://passport.baidu.com/?business&aid=6&un=%D7%F3%D1%DB%C1%E9%B9%E2#2
这人太强了,能刷到-7700分
提问数 已解决提问 解决中提问 被撤销问题
404 0 212 192

bdzd-zylg

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

,

No Comments

百度原来没过滤html

有人在百度知道上问”<!–#include file=”xxxx”–>与<Iframe src=”xxxx” ></iframe>区别”,我就帮他回答了,过了几天,发现被采纳,系统发给我一条消息,进去一看,对百度无语了。。

baidu-iframe

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, , ,

No Comments

ys168。。。

今天上mfthings.ys168.com,竟然说“请用IE5.0以后版本使用本系统!”。技术也太落后了吧,不支持Firefox最新版。

ys168不支持Firefox。。。

ys168不支持Firefox。。。点击图片看大图

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, ,

No Comments

Mario Forever 4.0 World 7-2超级Bug,囧死我了。


进入7-2后(水世界)
按1为小玛丽
按2为大玛丽
按3为子弹玛丽
按4为绿果玛丽
按5为草莓玛丽
按Q,太好玩了,高速度向右穿墙,不过要控制好,到终点后穿墙你就卡在里面出不来了。有兴趣的试试吧。
开不开选关器、作弊器都一样!

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, , ,

No Comments

Mario forever 终于通关了

利用MF4.4的CheckPoint通关的。。。
World8-3过了20多次,通关时岩浆淹没了管子,刚好过去。。。
7-4也过了很多次。

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

, ,

No Comments

« 1 2 3 4 5 6 7 8 9 10 11 12 13 »