在實際工作中,我們在做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
%>
(鼠標移到代碼上去,在代碼的頂部會出現四個圖標,第一個是查看源代碼,第二個是復制代碼,第三個是打印代碼,第四個是幫助)