不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
UBB 代码的原理简介
编辑:admin 日期:2006-07-25
什么是UBB?
UBB其实是国外的一个BBS程序(Ultimate Bulletin Board)采用的一种特殊的标记的简称。
大家知道,在网上一般允许用户输入纯文本,但不会允许用户输入HTML代码。因为如果允许用户直接输入HTML代码,可能就有人会利用恶意代码破坏系统。可是有时候特别需要用户输入一些超链接地址或图片,那怎么办呢?
此时,就可以使用UBB代码,这是一种特殊的标记,要求用户必须按这种格式要求输入,如:
[ B]……[/B] 表示中间文本用黑体显示
[ I]……[/I] 表示中间文本用斜体显示
[ U]……[/U] 表示中间文本用下划线显示
[ URL]……[/URL] 表示中间文本是一个超链接地址
[ IMG]……[/IMG] 表示中间文本是一个图片的地址
当用户输入后,就需要将其显示在页面上。可是浏览器只不能识别UBB代码,它只认识HTML代码。如果直接输出呢,就可能会输出如下内容的代码:
这是一张图片[ IMG]http://www.pku.edu.cn/pkuimages/pku_word1 .jpg[/IMG]
如果想正确显示呢,就需要利用字符串函数对上面的字符串进行处理,将其修改为标准的HTML代码,如:
这是一张图片<img src="http://www.pku.edu.cn/pkuimages/pku_word1 .jpg">
这样才能正确显示图片。
UBB的实现过程
UBB的实现过程基本可以总结为如下过程
用户输入UBB代码→系统将其转换为HTML代码→将HTML代码显示在页面上。
UBB的难点
(1)如何将UBB代码替换为HTML代码?
这就需要用到字符串函数,如Replace等,将其中的UBB代码替换为HTML代码即可,如将替换为<b>,将替换为</b>。
(2)如何帮助用户写UBB代码?
理论上可以让用户自己输入所有的UBB标记,如ubb1.0中的示例;但是由于普通用户撰写起来比较困难,所以很多系统会帮助用户书写UBB标记,这一般需要用JavaScript在客户端操作。
说明
(1) UBB的中心思想就是让客户输入一种特殊标记,然后由系统将其转换为标准的HTML标记显示在页面上。
(2) 本示例主要是为了讲解原理,所以只选取了五个UBB标记,其实还可以添加声音、flash等各种其它标记。基本原理都是一样的。
一个简单的UBBtoHTML函数
<%
'************************************************
'函数文件,这里利用正则表达式替换其中的UBB代码为标准的HTML代码
'************************************************
Function UBBtoHTML(content)
'建立正则表达式对象实例r。
dim r
set r=new RegExp
r.ignorecase=true '忽略大小写
r.Global=true '进行全局查找
'替换斜体字
r.pattern="(\[i\])(.[^\[]*)(\[\/i\])"
content=r.Replace(content,"<i>$2</i>")
'替换粗体字
r.pattern="(\[b\])(.[^\[]*)(\[\/b\])"
content=r.Replace(content,"<b>$2</b>")
'再替换下划线
r.pattern="(\[u\])(.[^\[]*)(\[\/u\])"
content=r.Replace(content,"<u>$2</u>")
'下面替换图片,本质上就要将[ IMG]http://www.jjshang.com/temp .jpg[/IMG]替换为<img src="http://www.jjshang.com/temp .jpg">
'其实只要把[ IMG]替换为<img src=",把[/IMG]替换为">即可。
r.pattern="(\[img\])(.[^\[]*)(\[\/img\])"
content=r.Replace(content,"<img src=""$2"">")
'下面替换超链接,本质上就要将http://www.jjshang.com替换为<a href="http://www.pku.edu.cn">http://www.jjshang.com</a>
r.pattern="(\[url\])(.[^\[]*)(\[\/url\])"
content=r.Replace(content,"<a href=""$2"" target=""_blank"">$2</a>")
'返回函数值
UBBtoHTML=content
End Function
%>
UBB其实是国外的一个BBS程序(Ultimate Bulletin Board)采用的一种特殊的标记的简称。
大家知道,在网上一般允许用户输入纯文本,但不会允许用户输入HTML代码。因为如果允许用户直接输入HTML代码,可能就有人会利用恶意代码破坏系统。可是有时候特别需要用户输入一些超链接地址或图片,那怎么办呢?
此时,就可以使用UBB代码,这是一种特殊的标记,要求用户必须按这种格式要求输入,如:
[ B]……[/B] 表示中间文本用黑体显示
[ I]……[/I] 表示中间文本用斜体显示
[ U]……[/U] 表示中间文本用下划线显示
[ URL]……[/URL] 表示中间文本是一个超链接地址
[ IMG]……[/IMG] 表示中间文本是一个图片的地址
当用户输入后,就需要将其显示在页面上。可是浏览器只不能识别UBB代码,它只认识HTML代码。如果直接输出呢,就可能会输出如下内容的代码:
这是一张图片[ IMG]http://www.pku.edu.cn/pkuimages/pku_word1 .jpg[/IMG]
如果想正确显示呢,就需要利用字符串函数对上面的字符串进行处理,将其修改为标准的HTML代码,如:
这是一张图片<img src="http://www.pku.edu.cn/pkuimages/pku_word1 .jpg">
这样才能正确显示图片。
UBB的实现过程
UBB的实现过程基本可以总结为如下过程
用户输入UBB代码→系统将其转换为HTML代码→将HTML代码显示在页面上。
UBB的难点
(1)如何将UBB代码替换为HTML代码?
这就需要用到字符串函数,如Replace等,将其中的UBB代码替换为HTML代码即可,如将替换为<b>,将替换为</b>。
(2)如何帮助用户写UBB代码?
理论上可以让用户自己输入所有的UBB标记,如ubb1.0中的示例;但是由于普通用户撰写起来比较困难,所以很多系统会帮助用户书写UBB标记,这一般需要用JavaScript在客户端操作。
说明
(1) UBB的中心思想就是让客户输入一种特殊标记,然后由系统将其转换为标准的HTML标记显示在页面上。
(2) 本示例主要是为了讲解原理,所以只选取了五个UBB标记,其实还可以添加声音、flash等各种其它标记。基本原理都是一样的。
一个简单的UBBtoHTML函数
<%
'************************************************
'函数文件,这里利用正则表达式替换其中的UBB代码为标准的HTML代码
'************************************************
Function UBBtoHTML(content)
'建立正则表达式对象实例r。
dim r
set r=new RegExp
r.ignorecase=true '忽略大小写
r.Global=true '进行全局查找
'替换斜体字
r.pattern="(\[i\])(.[^\[]*)(\[\/i\])"
content=r.Replace(content,"<i>$2</i>")
'替换粗体字
r.pattern="(\[b\])(.[^\[]*)(\[\/b\])"
content=r.Replace(content,"<b>$2</b>")
'再替换下划线
r.pattern="(\[u\])(.[^\[]*)(\[\/u\])"
content=r.Replace(content,"<u>$2</u>")
'下面替换图片,本质上就要将[ IMG]http://www.jjshang.com/temp .jpg[/IMG]替换为<img src="http://www.jjshang.com/temp .jpg">
'其实只要把[ IMG]替换为<img src=",把[/IMG]替换为">即可。
r.pattern="(\[img\])(.[^\[]*)(\[\/img\])"
content=r.Replace(content,"<img src=""$2"">")
'下面替换超链接,本质上就要将http://www.jjshang.com替换为<a href="http://www.pku.edu.cn">http://www.jjshang.com</a>
r.pattern="(\[url\])(.[^\[]*)(\[\/url\])"
content=r.Replace(content,"<a href=""$2"" target=""_blank"">$2</a>")
'返回函数值
UBBtoHTML=content
End Function
%>
评论: 0 | 引用: 0 | 查看次数: 5917
发表评论
请登录后再发表评论!