asp动态include文件的方法

   在实际工作中,我们在做asp编程开发的时候会偶尔遇到这样的情况:    view sourceprint?1 <%
    2 c=request("c")
    3 if c=1 then url="a.asp"
    4 else
    5   url="b.asp"
    6 end if
    7 %>
    8 <!--#include file="<%=url%>"-->
    我们希望能使用上面的方法动态include文件,但是上面的写法是错误的,不能运行。如果真的遇到这样的情况,又希望能够动态include文件如何办?
    这里介绍一下一个函数,来实现这样的方法。
    原理:使用fso读取include文件的内容,然后去掉<%和%>,再把剩下的内容放到当前页面上来,也就是fso读取文件的原因了。具体代码如下:
    view sourceprint?01 Function include(filename)
    02     Dim re,content,fso,f,aspStart,aspEnd
    03     set fso=CreateObject("Scripting.FileSystemObject")
    04     set f=fso.OpenTextFile(server.mappath(filename))
    05     content=f.ReadAll
    06     f.close
    07     set f=nothing
    08     set fso=nothing
    09     set re=new RegExp
    10     re.pattern="^\s*="
    11     aspEnd=1
    12     aspStart=inStr(aspEnd,content,"<%")+2
    13     do while aspStart>aspEnd+1
    14     Response.write Mid(content,aspEnd,aspStart-aspEnd-2)
    15     aspEnd=inStr(aspStart,content,"%\>")+2
    16     Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),"Response.Write "))
    17     aspStart=inStr(aspEnd,content,"<%")+2
    18     loop
    19     Response.write Mid(content,aspEnd)
    20     set re=Nothing
    21 End Function
    有了这个函数,上面的代码可以改成
    view sourceprint?1 <%
    2 c=request("c")
    3 if c=1 then
    4  url="a.asp"
    5 else
    6   url="b.asp"
    7 end if
    8 call include(url)
    9 %>
    这样就可以了