在實際工作中,我們在做ASP編程開發的時候會偶爾遇到這樣的情況:
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讀取文件的原因了。具體代碼如下:
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(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)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
%>(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)