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

ASP
生成像资源管理器一样的树形目录
将连接数据库的代码隐藏在DLL中
ASP中从数据库读取二进制文件数据代码
asp查询xml的代码,实现了无刷新、模糊查询功能
一个asp函数, 解决SQL Injection漏洞
在ASP中利用COM组件开发Web应用程序
关于如何利用COM+,来提高ASP执行权限的问题!
升级MD5.ASP,打造完全动态不重复的安全加密代码
ASP安全检测与过滤函数SafeCheck
在ASP中,用JScript脚本实现分页的另类办法
查看服务器Application/Session变量工具
自己写的一个简单ASP调用存储过程查询
ASP登陆验证页应做的安全问题
使用ASP与javascript配合实现多个复选框数据关联显示
Windows 2003下不注册组件用ASP发邮件
数据分页方法新思路,速度非常快!
ASP程序中同一个用户不允许同时登陆两次
分栏显示记录集的表格演示,并实现了分页
关于Adodb.Stream的写数据库数据到客户端文件的实践
将ASP的Debug变得简单的两个函数

ASP 中的 一个仿phplib的模板类


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

登陆 还没注册?