Il existe de nombreux systèmes de nouvelles qui génèrent du HTML, mais ils utilisent tous des modèles. Cette fonction enregistre le code HTML généré par la page asp dans un fichier HTML. De cette façon, il n'est pas nécessaire de modifier la page d'origine et vous pouvez facilement compléter un fichier. génération de nouvelles du système HTML. ^_^
Le code étant relativement court, je ne le commenterai pas ici
<%
"Il y a un problème avec ce programme lorsque réponse.End() existe dans le fichier d'inclusion de la page cible, c'est-à-dire la page #include.
'Remarque : Ce fichier doit être placé dans le même répertoire que le fichier pointé par le nom de fichier.
dim hughchiu_rtcode
Fonction get_exe_code (nom de fichier)
faible execode
faible tmp_str
Dim re, re1, contenu, fso, f, aspStart, aspEnd
faible mme, m
code d'exécution = ""
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.OpenTextFile(server.mappath(filename))
content=f.ReadAll
f.fermer
définir f = rien
définir fso = rien
set re = nouvelle expression rationnelle
re.ignorecase = vrai
re.global = vrai
re.motif = "<%@[^%]+%>"
contenu = re.replace(content,"")
re.global = faux
re.pattern = "<!--s*#includes*files*=s*""([^""]+)""s*- ->"
faire
set ms = re.execute (contenu)
si ms.count<>0 alors
définir m = ms(0)
tmp_str = get_exe_code(m.submatches(0))
contenu = re.replace(content, tmp_str)
autre
sortir faire
finir si
boucle
définir m = rien
définir ms = rien
re.motif="^s*="
aspFin=1
aspStart=inStr(aspEnd,content,"<%")+2
définir re1 = nouvelle RegExp
re1.ignorecase = vrai
re1.global = faux
re1.pattern = "réponse.Write(.+)"
faire pendant que aspStart>aspEnd+1
execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """&vbcrlf&""") &""""&vbcrlf
aspEnd=inStr(aspStart,content,"%>")+2
tmp_str = Milieu (contenu, aspStart, aspEnd-aspStart-2)
faire
set ms = re1.execute(tmp_str)
si ms.count<>0 alors
définir m = ms(0)
tmp_str = re1.replace(tmp_str, " hughchiu_rtcode = hughchiu_rtcode&"&m.submatches(0))
autre
sortir faire
finir si
boucle
définir m = rien
définir ms = rien
execode = execode& re.replace(tmp_str,"hughchiu_rtcode = hughchiu_rtcode&")
aspStart=inStr(aspEnd,content,"<%")+2
boucle
définir re1 = rien
définir re = rien
execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd), """", """"""), vbcrlf, """&vbcrlf&""" )&""""&vbcrlf
get_exe_code = "<%"&execode&"%>"
Fonction de fin
fonction asp2html (nom de fichier)
code d'atténuation
code = replace( replace( replace( get_exe_code(filename), "hughchiu_rtcode = hughchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%>", "" )
'réponse.Écrire(code)
exécuter(coder)
'response.Write(hughchiu_rtcode)
asp2html = hughchiu_rtcode
fonction de fin
%>
Exemple d'utilisation :
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.CreateTextFile( server.mappath( "youpage.htm" ), true )
f.WriteLine( asp2html("youpage.asp") )
f.fermer
définir f = rien
set fso = Nothing
J'espère que cette fonction sera utile à tout le monde. En raison du niveau limité, veuillez signaler toute erreur et espérer qu'elle pourra être améliorée.