ASP入門(十七)-ASP #include


通過使用 #include 指令,您可以在服務器執行 ASP 文件之前,把另一個 ASP 文件的內容插入到這個 ASP 文件中。

如何使用 #include 指令

這里有一個名為 mypage.asp 文件:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>如何使用 #include 指令</title>
</head>
<body>
<h3>至理名言</h3>
<!-- 這里引用了 wisdom.inc 文件 -->
<p><!--#include file="wisdom.inc"--></p>
<h3>現在時間是:</h3>
<!-- 這里應用了 time.asp 文件顯示當前時間-->
<p><!--#include file="time.asp"--></p>
</body>
</html>

這是 wisdom.inc 文件內容:

“優秀的代碼是它自己最好的文檔。當你考慮要添加一個注釋時,問問自己,“如何能改進這段代碼,以讓它不需要注釋?” —— Steve McConnell 《代碼大全》
這是 time.asp 文件內容:
<%
Response.Write(Time)
%>

在 Firefox 瀏覽器中運行 mypage.asp 文件后,顯示效果如下:

20150818003

通過【查看頁面源代碼】,它將如下所示:

20150818004


引入文件的語法

如需在 ASP 頁面中引用文件,請把 #include 指令放在注釋標簽 <!-- --> 中:

<!--#include virtual="somefilename" -->

or

<!--#include file="somefilename" -->

#include virtual 后面跟的文件是以虛擬目錄開始的“絕對路徑“。

#include file 后面跟的是文件的相對路徑,不可以使用絕對路徑,例如:

我們通過例子來學習區別,需要調用的文件(time.asp 和 wisdom.inc)存放在 inc 目錄中,主頁面(mypage.asp)存放在 test 目錄中,樹結構下圖所示:

20150818005

我們的 mypage.asp 分別用兩種方式進行引用,主要代碼如下:

......
<body>
<h1>#include file 相對地址方式的引用演示</h1>
<h3>至理名言</h3>
<p><!--#include file="../inc/wisdom.inc"--></p>
<h3>現在時間是:</h3>
<p><!--#include file="../inc/time.asp"--></p>
<hr>
<h1>#include virtual 絕對地址方式的引用演示</h1>
<h3>至理名言</h3>
<p><!--#include virtual="/inc/wisdom.inc"--></p>
<h3>現在時間是:</h3>
<p><!--#include virtual="/inc/time.asp"--></p>
</body>
......

調用后顯示效果如下:

20150818006


特別提示

通過上面的部分,我們已經使用了 INC 作為被引用文件的文件擴展名。如果用戶嘗試直接瀏覽 INC 文件,這個文件中的內容會被顯示出來。最好還是使用 ASP 作為擴展名。

在腳本執行前,被引用的文件就會被處理和插入。下面的腳本無法運行,就是因為 ASP 會在為變量賦值前執行 #include 指令,如下:

<%
fname = "/inc/wisdom.inc"
%>
<!--#include virtual="<%fname%>" -->

運行后會報錯,提示找不到包含的文件 <%fname%>。

你不能在腳本分隔符<%%>之間包含文件引用,也是無法執行的,如下:

<%
For i = 1 To 10
<!--#include virtual="/inc/wisdom.inc"-->
Next
%>

但是下面的這段代碼是可以執行的,引用 10 遍,如下:

<%For i = 1 To 10%>
<!--#include virtual="/inc/wisdom.inc"-->
<%Next%>

被引用的文件可以引用其他文件,同一個 ASP 文件可以對同一個文件多次引用。


示例代碼下載

IncludeTest.RAR


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM