ASP中利用execute实现动态包含文件的方法

时间:2021-05-28

在ASP中include文件形如 #include file=function.asp,这是最简单也是最常用的包含文件方法,青岛星网下面跟大家分享:根据不同的需求,包含不同的文件的函数。

ASP动态包含文件的实现函数

Function include(filename)Dim re,content,fso,f,aspStart,aspEndset fso=CreateObject("Scripting.FileSystemObject")set f=fso.OpenTextFile(server.mappath(filename))content=f.ReadAllf.closeset f=nothingset fso=nothingset re=new RegExpre.pattern="^\s*="aspEnd=1aspStart=inStr(aspEnd,content,"<%")+2do while aspStart>aspEnd+1Response.write Mid(content,aspEnd,aspStart-aspEnd-2)aspEnd=inStr(aspStart,content,"%\>")+2Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),"Response.Write "))aspStart=inStr(aspEnd,content,"<%")+2loopResponse.write Mid(content,aspEnd)set re=nothingEnd Function

其实是写一个动态包含的函数,这样每次调用时候代码简洁,也方便,使用方法:

include("***.asp")'注意,这里的include是函数名哦,不要搞混哦。

下面是其他网友的补充大家参考一下

ASP中,includefile/virtual是优先脚本代码处理的,所以无法使用include动态包含ASP文件。我们可以使用Execute函数动态执行所需代码。

方法:

Execute(ASP代码)

例子:(vbCrLf为换行符)

Execute("ClassclsAbc"&vbCrLf&"PublicFunctionoutput"&vbCrLf&"Response.Write123"&vbCrLf&"EndFunction"&vbCrLf&"EndClass")

Dim objAbc Set objAbc = New clsAbc objAbc.output Set objAbc = Nothing

使用时可以用从文件或数据库读取出ASP代码再执行,注意,所执行的代码中不应包含<%和%>
注意不要与Server.Execute混淆,Server.Execute参数为ASP虚拟路径,并且使用该函数不但不能动态声明Class类,甚至不可以给主程序段的变量赋值。

例子:

main.asp

Dim strAbc,objAbc strAbc = "Test" Server.Execute("sub.asp") Response.Write strAbc Set objAbc = New clsAbc objAbc.output Set objAbc = Nothing

sub.asp

strAbc = "Execute" Class clsAbc Public Function output Response.Write "Class" End Function End Class

执行main.asp后,将仅输出Test,而objAbc则不能实例化。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章