包含文件里含有执行文件怎么办?

来源:百度知道 编辑:UC知道 时间:2024/05/26 08:12:42
SqlName=session("AdminName")
<!--#include file="../home/<%="&SqlName&"%>/data/config.asp"-->

后来改成:<%
dim filePath
filePath= "../home/"&SqlName&"/data/config.asp"
Server.Execute(filePath)
%>
但好像没执行一样

。。这个当然不会执行咯。。。

原因如下:
在ASP网页(即带有.asp文件扩展名的网页)中使用的#include指令不能像一条真正的SSI指令那样进行处理,它仅是一条ASP能够识别并进行语法分析的特别指令。ssinc.dll直接用于执行SSI #include指令。然而这个由相应文件的内容替代#include指令的页面由ASP解释。

用一个类来解决这个问题

首先用普通方法来include这个函数
然后再需要动态include的就用下面的方法了

Function include(filename)
Dim re,content,fso,f,aspStart,aspEnd

set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.OpenTextFile(server.mappath(filename))
content=f.ReadAll
f.close
set f=nothing
set fso=nothing

set re=new RegExp
re.pattern="^\s*="
aspEnd=1
aspStart=inStr(aspEnd,content,"<%")+2
do while aspStart>aspEnd+1
Response.write Mid(content,aspEnd,aspStart-aspEnd-2)
aspEnd=inStr(aspStart,content,"%\>")+2
Execute(re.replace(Mid(content,aspStart,aspEnd-aspStart-2),"Response.Write "))
aspStart=inStr(aspEnd,content,"