ASP生成静态模版技术(带参数的标签)
来源:风之相随BLOG 发布时间:2009-03-03 12:29:00
标签:静态,模板,技术,标签,asp
<!--模板-->
<table width="100%" border="0" cellspacing="5" cellpadding="0">
<tr>
<td><tag:article_list class_id="314" PageSize="4" Len="8" showtime="0" /></td>
</tr>
</table>
<%
Call loadtemplate("test.htm")
'==============================
''替换模板内容
'==============================
Function loadtemplate(FileName)
Dim TempHtml
TempHtml = readfromfile(FileName)
'''处理用户标签
TempHtml = process_customtags(TempHtml)
loadtemplate = TempHtml
End Function
'==============================
'【功能】解析并替换相应的模板标签内容
'==============================
Function Parsetag(ByVal strtag)
Dim arrResult, className, arrAttributes, sTemp, i, objclass
'如果标签是空的则退出函数
If Len(strtag) = 0 Then Exit Function
arrResult = MySplit(strtag, ":")
className = MySplit(arrResult(1), " ")(0)
Parsetag = strtag
Dim nclass_id, nLen, nIsWhat, nshowtime
select Case LCase(className)
Case "article_list"
nclass_id = 0
nLen = 24
nPageSize = 10
nshowtime = 0
If Not IsBlank(GetAttribute("pagesize", strtag)) Then nPageSize = GetAttribute("pagesize", strtag)
If Not IsBlank(GetAttribute("class_id", strtag)) Then nclass_id = GetAttribute("class_id", strtag)
If Not IsBlank(GetAttribute("Len", strtag)) Then nLen = Int(GetAttribute("Len", strtag))
If Not IsBlank(GetAttribute("showtime", strtag)) Then nshowtime = Int(GetAttribute("showtime", strtag))
Parsetag = show_article_list(nclass_id, nPageSize, nLen, nshowtime)
End select
End Function
'==============================
'【功能】处理自定义标签
'==============================
Function process_customtags(ByVal sContent)
Dim objRegEx, Match, Matches
'建立正则表达式
Set objRegEx = New RegExp
'查找内容
objRegEx.Pattern = "<tag:[^<>]+?\/>"
'忽略大小写
objRegEx.IgnoreCase = True
'全局查找
objRegEx.Global = True
Set Matches = objRegEx.Execute(sContent)
'循环已发现的匹配
For Each Match in Matches
sContent = Replace(sContent, Match.Value, Parsetag(Match.Value))
Next
'消毁对象
Set Matches = Nothing
Set objRegEx = Nothing
'返回值
process_customtags = sContent
End Function
'==============================
'文件内容读取.
'==============================
Function readfromfile(ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.createObject("ADODB.Stream")
If Err.Number = -2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Mode = 3
.Open
.LoadFromFile Server.MapPath(File)
If Err.Number<>0 Then
Response.Write "<div align='center'>文件<font color='#ff0000'>" & File & "</font>无法被打开,请检查是否存在!</font></div>"
Err.Clear
Response.End
End If
.Charset = "GB2312"
.Position = 2
read1file = .ReadText
.Close
End With
Set objStream = Nothing
End Function
'==============================
''显示文章内容
'==============================
Function show_article_list(class_id, nPageSize, nLen, nshowtime)
每人代码都不一样,自己写哈
End Function
'==============================
'判断是否为空
'==============================
Function IsBlank(ByRef TempVar)
IsBlank = False
select Case VarType(TempVar)
'Empty & Null
Case 0, 1
IsBlank = True
'String
Case 8
If Len(TempVar) = 0 Then
IsBlank = True
End If
'Object
Case 9
Dim tmpType
tmpType = TypeName(TempVar)
If (tmpType = "Nothing") or (tmpType = "Empty") Then
IsBlank = True
End If
'Array
Case 8192, 8204, 8209
If UBound(TempVar) = -1 Then
IsBlank = True
End If
End select
End Function
%>
0
投稿
猜你喜欢
- 本人非计算机,亦非心理学,或者交互设计,更非设计专业出身,因此什么都是半桶水。即使如此,依然靠着兴趣寻找乐趣。对于设计,爱之,但没有受过系统
- 一、数字类型所谓的“数字类”,就是指 DECIMAL 和 NUMERIC,它们是同一种类型。它严格的
- 从开始认识CSS(DW4)那时起,我就知道了CSS的强大,但从未用CSS排版过,因为我曾经尝试过学习,但感觉太难了而且用DW的表格,所见及所
- CSS命名规范一.文件命名规范全局样式:global.css;框架布局:layout.css;字体样式:font.css;链接样式:link
- 如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传到服务器上就总是出现看不到图片,css
- 下面是BeforeInitialBind事件过程:<SCRIPT language=vbscript event=
- 级联样式表在13年前被引入,而且被广泛使用的CSS 2.1 标准在11年前被创建,显然我们现在已经与当年相差千里了。相当了不起的是期间网站开
- 内部存储格式:世纪、年、月、日、小时、分钟、秒默认格式是:DD-MON-RR。SYSDATE 返回当前的系统时间。SELECT S
- SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦。
- 今天写了一个放迅雷焦点广告的效果,还请大家多多指正,先附上效果图一张:相关文章:迅雷首页新闻图片轮播效果js源码首先是JS代码部分,之前一定
- MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文主要介绍了show命令的主要用
- 数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取
- 最近在工作当中遇到一个问题 有个页面需要添加一个浏览历史记录功能具体来说就是要记录下用户在此网站的点击历史 并把它们降序排列出来(只显示前6
- 不知道您是否留意了,浏览本站时,浏览器右下角有一个标着top的黑色直角三角形,可以点击它返回到正在浏览的网页页眉。当滚动网页时,它的位置一直
- 鼠标经过超链时的提示图层源码运行代码框<script>var oPopup = window.createPopup();fun
- blankzheng的blog:http://www.planabc.net/经常有朋友问我,网站要在哪些浏览器上测试?要达到怎样的兼容?我
- 1. 什么是存储过程?存储过程是SQL server所提供的Tran
- 这不仅仅是一个信息 * 的时代,也是一个服务 * 的时代。一切都是因为互联网,随着互联网技术的发展,信息的增多,服务的增多,用户需求的多样化。怎
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门) 2.彻底弄懂CSS盒子模式二(导航栏实例) 4.彻底弄懂CSS盒子模式四(绝对定位和相对
- 尽管 JavaScript 历史上使用冗长而令人生厌的代码块来标的特定浏览器的时期已经结束了,但是偶尔使用一些简单的代码块和对象检测来确保一