Comme vu précédemment sur la page Structure, il n'existe pas en ASP (avant IIS5) de fonction d'inclusion de fichiers équivalente à la fonction PHP include() . Alors traditionnellement on utilise une inclusion serveur (SSI) qui a le facheux inconvénient d'être réalisée AVANT l'exécution du code ASP nous empêchant ainsi d'inclure un fichier dont le nom aurait été "calculé" par le code...
La petite procédure que je vous propose ci-dessous remédie à ce manque et pourrait être utilisée dans une gestion de skins par exemple.
include.asp
<% ' === INCLUSION ASP ===
sub include(fichier) dim Fnm,inF,code,asp,pt1,pt2 ' Création éventuelle de l'objet FSO if not isobject(FSO) then _ set FSO = Server.CreateObject("Scripting.FileSystemObject") ' Calcul du path long du fichier Fnm = server.mapPath(fichier) ' si le fichier existe if FSO.fileExists(Fnm) then set inF = FSO.openTextFile(Fnm,1,false) ' on lit tout son contenu code = inF.readAll inF.close ' on remplace les <%= par des <%response.write code = replace(code,"<%=","<%response.write ") code = replace(code,"<% =","<%response.write ") ' puis c'est selon... pt1 = 1 : pt2 = -1 while pt1>0 pt1 = instr(pt2+2,code,"<"&"%") ' on exécute tout ce qui est entre < % et % > if pt1>0 then response.write mid(code,pt2+2,pt1-pt2-2) pt2 = instr(pt1+2,code,"%"&">") asp = mid(code,pt1+2,pt2-pt1-2) execute asp ' et on affiche le reste else response.write mid(code,pt2+2) end if wend ' sinon msg d'erreur else response.write "pas trouvé " & Fnm end if end sub %>
Utilisation
Pour l'utiliser il suffit simplement de l'invoquer (sans parenthèse puisque c'est une sub...:o)
<%include "monrep/page.asp"%>
Ou alors en calculant le nom du fichier
<%dir="monrep" : lang="fr" ' ... include dir & "/page_" & lang & ".asp" %>
Enfin par exemple dans une gestion de skins
<% skin = request.cookies("skin") if skin = "" then skin = "maunakea" ' ... include dir & "/skins/" & skin & "/top.asp" ' ... code général include dir & "/skins/" & skin & "/btm.asp" ' ... %>
Remarques
Le fichier à inclure peut avoir n'importe quelle extension... le code ASP sera reconnu par les tags <% et %> spécifiques...
Le fichier peut contenir du code HTML, du texte à afficher et du code ASP mélangés...