Es gibt viele Nachrichtensysteme, die HTML generieren, aber alle verwenden Vorlagen. Diese Funktion speichert den von der ASP-Seite generierten HTML-Code. Auf diese Weise ist es nicht erforderlich, die Originalseite zu ändern, und Sie können eine einfach vervollständigen Nachrichtengenerierung von HTML-System. ^_^
Da der Code relativ kurz ist, werde ich ihn hier nicht kommentieren
<%
„Es liegt ein Problem mit diesem Programm vor, wenn „response.End()“ in der Include-Datei der Zielseite, also der #include-Seite, vorhanden ist.
'Hinweis: Diese Datei muss im selben Verzeichnis abgelegt werden wie die Datei, auf die Dateiname verweist
dim Hughchiu_rtcode
Funktion get_exe_code(Dateiname)
dunkler Execode
dimmen Sie tmp_str
Dimmen Sie re,re1,content,fso,f,aspStart,aspEnd
dim ms,m
ausführencode = ""
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.OpenTextFile(server.mappath(filename))
content=f.ReadAll
f.schließen
setze f=nichts
setze fso=nichts
set re = neuer regulärer Ausdruck
re.ignorecase = true
re.global = wahr
re.pattern = "<%@[^%]+%>"
content = re.replace(content,"")
re.global = false
re.pattern = "<!--s*#includes*files*=s*""([^""]+)""s*- ->"
Tun
set ms = re.execute(content)
wenn ms.count<>0 dann
setze m = ms(0)
tmp_str = get_exe_code(m.submatches(0))
content = re.replace(content, tmp_str)
anders
beenden tun
Ende wenn
Schleife
setze m = nichts
setze ms = nichts
re.pattern="^s*="
aspEnd=1
aspStart=inStr(aspEnd,content,"<%")+2
set re1=new RegExp
re1.ignorecase = true
re1.global = false
re1.pattern = "response.Write(.+)"
tun, während 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 = Mid(content,aspStart,aspEnd-aspStart-2)
Tun
set ms = re1.execute(tmp_str)
wenn ms.count<>0 dann
setze m = ms(0)
tmp_str = re1.replace(tmp_str, " Hughchiu_rtcode = Hughchiu_RTcode&"&m.submatches(0))
anders
beenden tun
Ende wenn
Schleife
setze m = nichts
setze ms = nichts
execode = execode& re.replace(tmp_str,"hughchiu_rtcode = Hughchiu_rtcode&")
aspStart=inStr(aspEnd,content,"<%")+2
Schleife
setze re1 = nichts
setze re=nichts
execode = execode&vbcrlf&" Hughchiu_rtcode = Hughchiu_RTcode&""&replace( replace(Mid(content,aspEnd), """, """""), vbcrlf, """&vbcrlf&""" )&"""&vbcrlf
get_exe_code = "<%"&execode&"%>"
Funktion beenden
Funktion asp2html(Dateiname)
Dimmcode
code = ersetzen( ersetzen( ersetzen( get_exe_code(Dateiname), "hughchiu_rtcode = Hughchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%>", "" )
'response.Write(code)
ausführen(Code)
'response.Write(hughchiu_rtcode)
asp2html = Hughchiu_rtcode
Endfunktion
%>
Anwendungsbeispiel:
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.CreateTextFile( server.mappath( "youpage.htm" ), true )
f.WriteLine( asp2html("youpage.asp") )
f.schließen
setze f = nichts
set fso = Nothing
Ich hoffe, dass diese Funktion für alle nützlich ist. Bitte weisen Sie auf etwaige Fehler hin und hoffen Sie, dass diese verbessert werden können.