当前位置: 首页 > 图文教程 > 网络编程 > ASP > 一个仿phplib的模板类

ASP
ASP中实现限制IP的函数详解
Asp下实现限制IP访问的程序代码
asp下DateDiff 函数参数说明
Highlight patterns within strings
Insert Date and Time into Access
asp下调试程序的debug类
RESPONSE.WRITE和<%=%的区别
用asp实现网页邮箱访问的方法
编写一个含二级目录的源码(Asp+JavaScript)
asp下删除Access数词库中的空记录的sql语句
asp下制做行背景颜色交替变换的表格
asp下将数据库中的信息存储至XML文件中
asp下如何在Access数据库中立即得到所插入记录的自动编号?
asp下如何在ADO服务器端利用好缓存技术?
asp调用Word打印的代码
巧用FileSystem组件实现WEB应用中的本地特定打印的方法
用javascript解决外部数据抓取中的乱码问题
Asp中随机产生用户密码的代码
反SPAM新思路—换Z-BLOG的验证码!
在Z-BLOG可用的新版ASP的GIF验证码[V70404]

ASP 中的 一个仿phplib的模板类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 106 ::
收藏到网摘: n/a

用php用惯了,用phplib用惯了,没有他觉得很不舒服
上网查找没有人写,自己写了一个,asp水平不高,希望
能有高手指点修改。
<%
' ====================================
' Name: Template Class
' Purpose: Parse and output HTML page
' Date: 10.2002
' Author: pig
' Email: [email protected]
' Phone: 13910320759
' ====================================

class Template
dim gs_root
dim gs_handle()
dim gs_file()
dim gs_keys()
dim gs_keyVars()
dim gs_vars()

'构造函数
Private Sub Template_Initialize()
call of_setRoot(".")
'call of_redimVar()
End Sub

function of_redimVar()
redim gs_handle(0)
redim gs_file(0)
redim gs_keys(0)
redim gs_keyVars(0)
redim gs_vars(0)
end function

'设置模板存放路径
function of_setRoot(byVal ps_root)
if ps_root <> "" then
gs_root = ps_root
end if
end function

'设置文件名称函数
function of_setFile(byVal ps_fileHandle,byVal ps_fileName)
if ps_fileName <> "" then
li_maxNum=UBound(gs_handle)
gs_handle(li_maxNum) = ps_fileHandle
gs_file(li_maxNum) = gs_root+"/"+ps_fileName

li_maxNum=li_maxNum+1
redim Preserve gs_handle(li_maxNum)
redim Preserve gs_file(li_maxNum)
end if
end function

'设置要替换的参数变量
function of_setVar(byVal ps_key,byVal ps_var)
if ps_key <> "" and ps_var <> "" then
li_keyIndex=of_getIndex(gs_keys,ps_key)
if li_keyIndex="no" then
li_maxNum=UBound(gs_keys)
gs_keys(li_maxNum)=ps_key
gs_keyVars(li_maxNum)="\{" & ps_key & "\}"
gs_vars(li_maxNum)=ps_var

li_maxNum=li_maxNum+1
redim Preserve gs_keys(li_maxNum)
redim Preserve gs_keyVars(li_maxNum)
redim Preserve gs_vars(li_maxNum)
else
gs_keys(li_keyIndex)=ps_key
gs_keyVars(li_keyIndex)="\{" & ps_key & "\}"
gs_vars(li_keyIndex)=ps_var
end if
end if
end function

'定义重载文字块儿
function of_setBlock(byVal ps_parent,byVal ps_handle,byVal ps_name)
if (not of_loadFile(ps_parent)) then
ls_error="of_loadFile unable to load "+ps_parent
response.write(ls_error)
of_setBlock=false
exit function
end if

if ps_name="" then
ps_name=ps_handle
end if

ls_string=of_getVar(ps_parent)
ls_pattern = "<!--\s*BEGIN "&ps_handle&"\s*-->(.*)<!--\s*END "&ps_handle&"\s*-->"

Set regEx = New RegExp
regEx.Pattern = "\n"
regEx.IgnoreCase = false
regEx.global = true
ls_string = regEx.Replace(ls_string,"")

regEx.Pattern = ls_pattern
regEx.Multiline = true
regEx.global = false
Set Matches = regEx.Execute(ls_string)
ls_string = regEx.Replace(ls_string,"{"&ps_name&"}")

For Each Match in Matches
ls_value=Match.value
Next

regEx.Pattern = "<!--\s*BEGIN "&ps_handle&"\s*-->"
regEx.IgnoreCase = false
regEx.global = true
ls_value = regEx.Replace(ls_value,"")

regEx.Pattern = "<!--\s*END "&ps_handle&"\s*-->"
regEx.IgnoreCase = false
regEx.global = true
ls_value = regEx.Replace(ls_value,"")

call of_setVar(ps_handle,ls_value)
call of_setVar(ps_parent,ls_string)
end function

'装载变量内容
function of_loadFile(byVal ps_handle)
li_keyIndex=of_getIndex(gs_keys,ps_handle)
if li_keyIndex = "no" then
li_fileIndex=of_getIndex(gs_handle,ps_handle)
if li_fileIndex = "no" then
ls_error="loadfile:"+ps_handle+" is not a valid handle."
response.write(ls_error)
of_loadFile=false
exit function
end if

ls_fileName=gs_file(li_fileIndex)
ls_fileName=server.mappath(ls_fileName)
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
li_exist=MyFileObject.FileExists(ls_fileName)
if li_exist then
Set MyTextFile=MyFileObject.OpenTextFile(ls_fileName)
ls_file=MyTextFile.readAll()
MyTextFile.Close
call of_setVar(ps_handle,ls_file)
else
ls_error="loadfile:"+ls_fileName+" is not a valid file or path."
response.write(ls_error)
of_loadFile=false
exit function
end if
end if

评论 (0) All

登陆 还没注册?