Существует множество новостных систем, которые генерируют HTML, но все они используют шаблоны. Эта функция сохраняет HTML-код, созданный страницей asp, в HTML-файл. Таким образом, нет необходимости изменять исходную страницу, и вы можете легко заполнить ее. генерация новостей в формате html. ^_^
Поскольку код относительно короткий, я не буду его здесь комментировать
<%
«В этой программе возникла проблема, когда метод response.End() существует во включаемом файле целевой страницы, то есть на странице #include.
'Примечание: этот файл должен быть помещен в тот же каталог, что и файл, на который указывает имя файла.
тусклый Hughchiu_rtcode
Функция get_exe_code(имя файла)
тусклый исполняемый код
дим tmp_str
Dim re, re1,content,fso,f,aspStart,aspEnd
тусклый мс, м
код выполнения = ""
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.OpenTextFile(server.mappath(имя файла))
контент = f.ReadAll
е.закрыть
установить f=ничего
установить fso=ничего
set re = новое регулярное выражение
re.ignorecase = правда
re.global = правда
re.pattern = "<%@[^%]+%>"
контент = re.replace(content,"")
re.global = ложь
re.pattern = "<!--s*#includes*files*=s*""([^""]+)""s*- ->"
делать
установить мс = re.execute(содержимое)
если ms.count<>0 тогда
установить м = мс (0)
tmp_str = get_exe_code(m.submatches(0))
контент = re.replace(content, tmp_str)
еще
выход, сделай
конец, если
петля
установить м = ничего
установить мс = ничего
re.pattern="^s*="
aspEnd=1
aspStart=inStr(aspEnd,content,"<%")+2
установить re1=новое регулярное выражение
re1.ignorecase = правда
re1.global = ложь
re1.pattern = "ответ.Запись(.+)"
делать, пока aspStart>aspEnd+1
execode = execode&vbcrlf&" humhchiu_rtcode = humhchiu_rtcode&"""&replace( replace(Mid(content,aspEnd,aspStart-aspEnd-2),"""",""""""), vbcrlf, """&vbcrlf&""") &""""&vbcrlf
aspEnd=inStr(aspStart,content,"%>")+2
tmp_str = Mid (содержание, aspStart, aspEnd-aspStart-2)
делать
установите мс = re1.execute(tmp_str)
если ms.count<>0 тогда
установить м = мс (0)
tmp_str = re1.replace(tmp_str, "hughchiu_rtcode = humhchiu_rtcode&"&m.submatches(0))
еще
выход, сделай
конец, если
петля
установить м = ничего
установить мс = ничего
execode = execode& re.replace(tmp_str,"hughchiu_rtcode = humhchiu_rtcode&")
aspStart=inStr(aspEnd,content,"<%")+2
петля
установить re1 = ничего
установить повторно = ничего
execode = execode&vbcrlf&"huhchiu_rtcode = Hughchiu_rtcode&"""&replace( replace(Mid(content,aspEnd), """", """"""), vbcrlf, """&vbcrlf&""" )&""""&vbcrlf
get_exe_code = "<%"&execode&"%>"
Конечная функция
функция asp2html (имя файла)
тусклый код
code = replace( replace( replace( get_exe_code(filename), "hughchiu_rtcode = humhchiu_rtcode&"""""&vbcrlf, "" ), "<%", "" ), "%>", "" )
'ответ.Запись(код)
выполнить (код)
'response.Write(hughchiu_rtcode)
asp2html = Hughchiu_rtcode
конечная функция
%>
Пример использования:
set fso=CreateObject("Scripting.FileSystemObject")
set f=fso.CreateTextFile(server.mappath("youpage.htm"), true )
f.WriteLine( asp2html("youpage.asp") )
е.закрыть
установить f = ничего
set fso = ничего
Надеюсь, эта функция будет полезна всем. В связи с ограниченным уровнем, пожалуйста, указывайте на любые ошибки и надеюсь, что их можно исправить.