اینکلود (#include) (ASP #include)
«اینکلود ASP» یعنی چسباندن محتوای یک فایل به فایل دیگر، قبل از اجرا. «دستور (#include)» یک دستور سروری است و متن فایل را وارد می کند، نه لینک ساده. این کار تکرارِ کد را کم می کند.
#include چیست و کِی به درد می خورد؟
با #include می توانی هدر، فوتر، یا توابع مشترک بسازی. سپس همان بخش را در چند صفحه استفاده کنی. همه این ها قبل از اجرای اسکریپت انجام می شود.
نمونه کامل استفاده در صفحه
فایل «mypage.asp» دو فایل را وارد می کند: یکی متن، یکی زمان.
<!DOCTYPE html>
<html>
<body>
<h3>Words of Wisdom:</h3>
<p><!--#include file="wisdom.inc"--></p>
<h3>The time is:</h3>
<p><!--#include file="time.inc"--></p>
</body>
</html>
محتوای wisdom.inc
این فایل فقط متن ساده دارد.
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
محتوای time.inc
این فایل زمان فعلی را چاپ می کند.
<%
Response.Write(Time)
%>
سینتکس دستور #include
دستور باید داخل کامنت HTML باشد. دو حالت «virtual» و «file» داریم.
<!--#include virtual="somefilename"-->
or
<!--#include file="somefilename"-->
کلیدواژه virtual
«virtual» یعنی مسیر از ریشه پوشه مجازی شروع می شود.
<!--#include virtual="/html/header.inc" -->
کلیدواژه file
«file» یعنی مسیر نسبی از کنار فایلِ شامل کننده شروع می شود.
<!--#include file="headers\header.inc" -->
هشدار: اگر فایل در مسیر دیگری باشد، مسیر نسبی کار نمی کند.
رفتار در خروجی مرورگر
مرورگر فقط خروجی نهایی را می بیند. محتوای فایل های include جایگزین می شود.
<!DOCTYPE html>
<html>
<body>
<h3>Words of Wisdom:</h3>
<p>"One should never increase, beyond what is necessary,
the number of entities required to explain anything."</p>
<h3>The time is:</h3>
<p>11:33:42 AM</p>
</body>
</html>
نکات امنیتی و محدودیت ها
فایل های «.inc» در صورت دسترسی مستقیم نمایش می شوند. اگر محرمانه اند، از پسوند «.asp» استفاده کن.
هشدار: اینکلود قبل از اجرای اسکریپت انجام می شود. پس متغیر در نام فایل اینکلود کار نمی کند.
<%
fname = "header.inc"
%>
<!--#include file="<%fname%>"-->
هشدار: در فایل INC نمی توانی جداکننده اسکریپت را باز یا بسته کنی.
<%
For i = 1 To n
<!--#include file="count.inc"-->
Next
%>
اما وقتی بلوک ها جدا باشند، کار می کند.
<% For i = 1 To n %>
<!--#include file="count.inc" -->
<% Next %>
گام های عملی سریع
- یک «header.asp» بساز و منو را داخلش بگذار.
- در صفحات سایت، با «file» آن را وارد کن.
- برای مسیرهای سراسری، از «virtual» استفاده کن.
جمع بندی سریع
- #include متن را قبل از اجرا می چسباند.
- «file» نسبی است؛ «virtual» ریشه ای است.
- .inc محرمانه نیست؛ برای امنیت از .asp استفاده کن.
- نام پویا برای include کار نمی کند.