Existem muitos sistemas de notícias que geram html, mas todos usam templates. Esta função salva o código html gerado pela página asp em um arquivo html. Desta forma, não há necessidade de alterar a página original e você pode facilmente completar um. geração de notícias do sistema html. ^_^
Como o código é relativamente curto, não vou comentá-lo aqui
<%
'Há um problema com este programa quando response.End() existe no arquivo de inclusão da página de destino, ou seja, a página #include.
'Nota: Este arquivo deve ser colocado no mesmo diretório que o arquivo apontado por filename
dim hughchiu_rtcode
Função get_exe_code (nome do arquivo)
escurecer execode
dim tmp_str
Dim re,re1,content,fso,f,aspStart,aspEnd
escurecer ms, m
executecode = ""
set fso=CreateObject("Scripting.FileSystemObject")
definir f=fso.OpenTextFile(servidor.mappath(nome do arquivo))
content=f.ReadAll
f.fechar
definir f = nada
definir fso = nada
definir re = novo regexp
re.ignorecase = verdadeiro
re.global = verdadeiro
re.pattern = "<%@[^%]+%>"
conteúdo = re.replace(conteúdo,"")
re.global = falso
re.pattern = "<!--s*#includes*files*=s*""([^""]+)""s*- ->"
fazer
definir ms = re.executar (conteúdo)
se ms.count<>0 então
definir m = ms(0)
tmp_str = get_exe_code(m.submatches(0))
conteúdo = re.replace(conteúdo, tmp_str)
outro
sair, faça
terminar se
laço
definir m = nada
definir ms = nada
re.pattern="^s*="
aspFim=1
aspStart=inStr(aspEnd,conteúdo,"<%")+2
definir re1 = novo RegExp
re1.ignorecase = verdadeiro
re1.global = falso
re1.pattern = "resposta.Write(.+)"
faça enquanto 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 = Médio(conteúdo,aspStart,aspEnd-aspStart-2)
fazer
definir ms = re1.execute(tmp_str)
se ms.count<>0 então
definir m = ms(0)
tmp_str = re1.replace(tmp_str, " hughchiu_rtcode = hughchiu_rtcode&"&m.submatches(0))
outro
sair, faça
terminar se
laço
definir m = nada
definir ms = nada
execode = execode& re.replace(tmp_str,"hughchiu_rtcode = hughchiu_rtcode&")
aspStart=inStr(aspEnd,content,"<%")+2
laço
definir re1 = nada
definir re = nada
execode = execode&vbcrlf&" hughchiu_rtcode = hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd), """", """"""), vbcrlf, """&vbcrlf&""" )&""""&vbcrlf
get_exe_code = "<%"&execode&"%>"
Função final
função asp2html (nome do arquivo)
código escuro
código = substituir( substituir( substituir( get_exe_code(nome do arquivo), "hughchiu_rtcode = hughchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%>", "" )
'resposta.Write(código)
executar (código)
'resposta.Write(hughchiu_rtcode)
asp2html = hughchiu_rtcode
função final
%>
Exemplo de uso:
set fso=CreateObject("Scripting.FileSystemObject")
definir f=fso.CreateTextFile( server.mappath( "youpage.htm"), true )
f.WriteLine( asp2html("youpage.asp") )
f.fechar
definir f = nada
set fso = nada
Espero que esta função seja útil para todos Devido ao nível limitado, aponte quaisquer erros e espero que possam ser melhorados.