日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

ASP動態include文件

瀏覽:269日期:2022-06-04 15:53:58

 經常有這樣的要求,根據不同的需求要求include不同的文件如各個人的不同設置,所以要求能動態include文件受<! #include file="filename.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,"<%")+2
 loop
 Response.write Mid(content,aspEnd) 
 set re=nothing
End Function

使用范例:

include("youinc.asp")

ASP可以動態Include文件

<% 
"得到用戶所在的省份 
Dim Province 
Province = Request.form("Province") 
"下面顯示這個省份相關的信息 
%> 
<!--#include virtual="/ Province/<%= Province%>"--> 

你覺得上面的代碼可以工作嗎?不!簡單地使用ASP來達到動態包含,你不能達到你想要的效果。為什么?因為:Include命令先于ASP代碼而得到執行,所以,上面的代碼并沒有按照作者的意愿,先得到用戶所在的省份,再包含這個省份的信息!
如果你確實需要動態包含,你可以這樣做:

<%
Select Case Province
Case 1: %>
<!--#include file="1.asp"
<% Case 2: %>
<!--#include file="2.asp"
<% Case 3: %>
<!--#include file="3.asp"
<% End Select %>

應該說,這段代碼可以得到你想要的結果。但是,由于你的用戶可能來自于33個省,你難道包含33個文件?特別要說明的是,SSInc.dll是不知道你究竟需要哪個包含文件的(事實上,這時候Province還沒有值),所以,她把所有的文件都包含進來了!你可以想象,這時候的文件有多大!然后,ASP.DLL會去掃描這個文件中的ASP代碼,然后執行!
所以,每當這樣的時候,你應該考慮其他的思路,比如數據庫,或者采用FileSystemObject。

怎樣動態Include文件?

解答
ASP程序員經常面臨的最大挑戰之一是動態Include文件。由于#include 在ASP代碼執行之前處理,所以,看起來,動if/else的腦筋是不可能的。

真是這樣嗎?
根據你使用Include的目的,以及你將Include的文件數目,使用if/else也許可以解決問題。但這絕對不是任何時候可以奏效的,而且也不是一種有效的解決辦法,因為你需要做許多的手工工作。

假設有兩個樣本HTM文件,1.htm和2.htm,為簡化起見,假設文件的內容如下:

<!-- 1.HTM: -->
<font color=#ff0000>This is 1.htm</font>
<!-- 2.HTM: -->
<font color=#0000ff>This is 2.htm</font>

現在我們來試試動態Include:

<% 
if request.querystring("param")="2" then 
%> 
<!--#include file="2.htm"--> 
<% 
else 
%> 
<!--#include file="1.htm"--> 
<% 
end if 
%>

請注意:上面的兩個#include 實際上都得到了處理。你可以實際運行一下,看看效果:http://localhost/Test.asp?param=1

http://localhost/Test.asp?param=2
http://localhost/Test.asp

上面我們是把一個querystring作為條件。你還可以把時間、日期、瀏覽器版本等作為條件。但是,條件越復雜,這種方法的效率越差。下面提供了另外一種思路:

<% 
if request("param")="2" then 
filespec = "2.htm" 
else 
filespec = "1.htm" 
end if 
filespec = server.mapPath(filespec) 
scr = "scripting.fileSystemObject"
set fs = server.createobject(scr) 
set f = fs.openTextFile(filespec) 
content = f.readall 
set f = nothing 
set fs = nothing 
response.write(content) 
%>

在IIS5.0/ASP3.0中,有兩種新的方法來支持“動態包含”:

<%
server.transfer filename
server.execute filename
%>

如果正好使用的是IIS5.0和ASP3.0,那么Ok! 但是IIS5.0需要運行在Windows 2000上。

Asp包含文件include動態包含方法(含變量)

很多時候,由于程序設計需要,要求在asp的include包含文件里調用動態的文件。如<!--#include file="map1.asp"-->其中的1是個動態參數,需要request獲取。但可惜的是,include語句里并不能含有變量,否則將提示找不到文件錯誤。本文將提供3種方法解決該問題。

首先,我們需要了解,包含文件的提示和警告信息:被包含的文件可以包含其他文件。只要“#include”命令不導致循環,.asp 文件也可以多次包含同一文件。例如,如果文件 First.asp 包含文件 Second.inc,則 Second.inc 不能反過來包含 First.asp。文件也不能包含其自身。ASP 檢測這樣的循環或嵌套錯誤,生成錯誤消息,并停止處理請求的 .asp 文件。
解決方法一:FSO調用方法

ASP語言是強大易用的語言,我們不要把自己的思維局限固定在一個角落里,“條條大道通羅馬”,一個思路不通,換個思路吧。

本方法采用變通的方法實現同樣的包含功能。即FSO調用。代碼如下:

<%
Function getFileContents(strIncludeFile) "函數:讀取包含文件內容
Dim objFSO,objText,strPage
Set objFSO = Server.CreateObject("Scripting.FileSystemObject") "調用FSO對象
Set objText = objFSO.OpenTextFile(Server.MapPath(strIncludeFile))
getFileContents = objText.ReadAll
objText.Close
Set objText = Nothing
Set objFSO = Nothing
End Function
dim p
p=request("p") "2種方式:request.form ,request.querystring
response.write getFileContents("map"&p&".asp")
%>

這樣,利用fso函數讀取包含文件的內容,然后用response.write把包含文件的內容輸出,即實現和include命令同樣的功能了,輕松實現自由輸出諸如 map1.asp,map2.asp… 等文件內容了。

解決方法二:if...elseif...

此方法適用于要包含的文件數量不多的情況下,也是懶人+笨人的方法,呵呵。代碼如下:

<%if a=1 then%>
<!--#include file="map1.asp"-->
<%elseif a=2 then%>
<!--#include file="map2.asp"-->
<%elseif a=3 then%>
<!--#include file="map3.asp"-->
<%end if%>

解決方法三:select case

方法和第二種差不多,稍微好點。代碼如下:

<%select case p
case 1%>
<!--#include virtual="inc/****1.asp"-->
<%case 2%>
<!--#include virtual="inc/****2.asp"-->
<%case 3%>
<!--#include virtual="inc/****3.asp"-->
<%case 4%>
<!--#include virtual="inc/****4.asp"-->
<%end select%>

如果你有其他更好的方法,歡迎與我們交流。您可以把你您的想法留在博客評論里,我們期待與您的探討。

補充:關于asp的include包含命令,需要注意以下方面。

ASP程序在執行腳本命令之前就已經包含文件。因此,不能使用腳本命令來建立被包含的文件名。舉例來說,因為 ASP 試圖在將文件名指派給變量 name 之前執行“#include”命令,所以下面的腳本無法打開文件 Header1.inc。

<!-- 該腳本將失敗 -->
<% name= header1.inc %>
<!-- #include file="<%= name %>" -->

腳本命令和過程必須完全包含在腳本分隔符 <% 和 %> 內,即 HTML 標簽 <SCRIPT> 和 </SCRIPT>,或 HTML 標簽 <OBJECT> 和 </OBJECT> 內部。也就是說,不能在包含 .asp 文件中打開腳本分隔符,并在被包含的文件中關閉分隔符;腳本或腳本命令必須是一個完整的單元。例如,下面的腳本將不起作用:

<!-- 該腳本將失敗 -->
<%
For i = 1 To n
主文件中的語句
<!-- #include file="header1.inc" -->
Next
%>
但下面的腳本會起作用:
<%
For i = 1 to n
主文件中的語句
%>
<!-- #include file="header1.inc" -->
<% Next %>

如果 ASP 腳本包含的文件中存在包含腳本不需要的大量函數和變量,則這些無用的結構反而會影響性能,并最終降低 Web 應用程序的伸縮性。因此,通常將包含文件分成多個小文件,并且只包含那些服務器端腳本必需的文件,而不是包含那些帶有冗余信息的一個或多個大型包含文件。

標簽: ASP
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品二区| 国产麻豆一区二区三区| 国产不卡av一区二区| 国产剧情在线观看一区| 国产精品久久久久久妇女| 久久精品凹凸全集| 欧美成人精品午夜一区二区| 精品一区二区三区的国产在线观看| 精品一区二区三区的国产在线观看| 麻豆精品一区二区综合av| 国产日产高清欧美一区二区三区 | 在线观看亚洲精品福利片| 中文不卡在线| 国产视频一区二区在线播放| 麻豆一区二区三| 91亚洲国产高清| 欧美高清不卡| 亚洲人www| 久久不卡国产精品一区二区| 国产中文在线播放| 婷婷亚洲五月色综合| 丝袜a∨在线一区二区三区不卡| 午夜亚洲福利| 国产日韩一区二区三区在线播放| 美女视频免费精品| 久久久精品日韩| 丝袜亚洲精品中文字幕一区| 91精品国产一区二区在线观看| 久久香蕉网站| 久久狠狠婷婷| 视频一区视频二区中文字幕| 日韩av中文字幕一区二区 | 久久精品国产一区二区| 日韩国产欧美| 久久福利精品| 欧美黑人做爰爽爽爽| 久久精品国产999大香线蕉| 日韩欧美另类一区二区| 亚洲欧美网站| 国产日韩欧美一区二区三区| 97精品在线| 伊人成人在线视频| 夜夜嗨一区二区| 国产精品15p| 欧美精品日日操| 亚洲欧美专区| 国产suv精品一区| 国产美女精品| 精品视频自拍| 日韩视频一区| 麻豆久久一区二区| 色婷婷久久久| 青青草精品视频| 久久久久中文| 日韩激情啪啪| 深夜视频一区二区| 日韩中文av| 深夜福利视频一区二区| 男人操女人的视频在线观看欧美| 久久99性xxx老妇胖精品| 不卡av一区二区| 久久99久久久精品欧美| 视频一区欧美日韩| 9999国产精品| 日韩国产欧美一区二区三区| 免费在线小视频| 亚洲综合激情在线| 青青久久av| 国产精品66| 久久高清国产| 亚洲电影有码| 久久麻豆视频| 日韩手机在线| 一区二区亚洲精品| av资源中文在线| 日本成人一区二区| 亚洲激情久久| 日韩福利一区| 久久av资源| 亚洲字幕久久| 在线成人动漫av| 国产欧美丝祙| 亚洲开心激情| 亚洲精品一二三区区别| av中文资源在线资源免费观看| 日韩av一区二区在线影视| 女同性一区二区三区人了人一| 欧美国产一级| 国产精品美女久久久久久不卡| 一区二区国产在线| 悠悠资源网久久精品| 免费看av不卡| 国产伊人久久| 国产精品一区二区av日韩在线| 麻豆91精品| 国产韩日影视精品| 91亚洲一区| 国产成人精品三级高清久久91| 国产精选久久| 欧美亚洲网站| 婷婷久久免费视频| 一区二区亚洲视频| 蜜臀精品久久久久久蜜臀| 亚洲欧美日韩国产| 亚洲成人三区| 国产精品99一区二区| 久久中文精品| 精品一二三区| 精品久久视频| 国产999精品在线观看| 久久久免费人体| 国产日韩欧美在线播放不卡| 91精品在线免费视频| 日韩黄色av| 亚洲精品欧美| 亚洲精品日本| 日韩精品久久久久久久软件91| 亚洲资源网站| 日韩精品第一| 国产欧美日本| 国产精品久久久久久av公交车| 国产日韩在线观看视频| 国产欧美日韩综合一区在线播放| 国产日韩亚洲| 欧美1区2区3| 精品国产精品国产偷麻豆| 精品一区二区三区在线观看视频 | av日韩中文| 日韩伦理一区| 国产一区视频在线观看免费| 国产高清久久| 免费日韩av| 日本亚洲不卡| 国产精品亚洲欧美| 精品一区二区三区亚洲| 中文字幕成在线观看| 三上悠亚国产精品一区二区三区| 亚洲播播91| 在线日韩欧美| 好吊视频一区二区三区四区| 丝袜国产日韩另类美女| 亚洲精品乱码| 老牛国内精品亚洲成av人片 | 国产精品二区不卡| 精品亚洲美女网站| 欧美精品一二| 一区二区电影| 国产精品嫩草影院在线看| 国产精品xx| 伊人久久婷婷| 欧美一区自拍| 日韩精品电影| 99国产精品视频免费观看一公开| 亚洲欧美专区| 久久久久伊人| 在线日韩欧美| 日韩国产成人精品| www在线观看黄色| 久久福利毛片| 国产精品4hu.www| 亚洲高清激情| 日韩精品亚洲aⅴ在线影院| 精品亚洲免a| 最新亚洲激情| 国产欧美日韩在线观看视频| 婷婷综合六月| 亚洲精品中文字幕99999| 麻豆高清免费国产一区| 国产一区观看| 欧美一级二区| 久久久夜精品| 日韩精品一级| 在线看片福利| 中文字幕一区二区三区日韩精品 | 日韩欧美三区| 国产成人精品一区二区三区免费 | 国内不卡的一区二区三区中文字幕| 不卡av一区二区| 国产伦一区二区三区| 99久久激情| 久久国内精品自在自线400部| 日韩啪啪电影网| 亚洲精品在线国产| 日韩国产专区| 欧美亚洲三区| 亚洲国产日韩欧美在线| 国产精品久久久久久久久久齐齐| 亚洲成人va| 69堂精品视频在线播放| 成人精品天堂一区二区三区| 亚洲18在线| 国产在线欧美| 国产精品17p| 免费看欧美美女黄的网站| 水蜜桃精品av一区二区| 中文字幕亚洲精品乱码| 少妇久久久久| 国产三级一区| 老鸭窝毛片一区二区三区| 欧美日韩精品免费观看视完整|