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

ASP
IIS访问ASP页面时报错The requested resource is in use.的解决办法
错误类型:Provider (0x80004005)未指定的错误 的一个处理方法
关于asp+access的安全问题分析
把RS.GetRows看得更清楚
asp下UTF-8页面乱码的解决方法
解决使用良精企业建站7.0未注册问题
在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
flash与js通讯方法
ASP操作Excel相关技术总结
解决用Access数据库建站维护不便的问题的方法
ASP实现GB2312字符与区位码的相互转换的代码
对于ASP编码问题的深入研究与最终解决方案
ASP生成UTF-8编码的代码
删除A表中在B表中不存在的数据
动网防恶意广告比较有效的办法附asp代码
asp磁盘缓存技术使用的代码
网页语言编码及asp乱码问题解决方案
FSO遍历目录实现全站插马的代码
关于无限分级(ASP+数据库+JS)的实现代码
如何写ASP入库小偷程序

ASP 中的 一个仿phplib的模板类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 101 ::
收藏到网摘: 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

登陆 还没注册?