asp教程-生成静态html文件实例代码

asp教程-生成静态html文件实例代码
<%
'======================================================
' 文件名称 : inc/ClsTempIndex.asp
' 文件作用 : 首页类
' 最后更新 : 2008.08.10
'======================================================

Class Cls_TempIndex

    Public OriginTempContent,TempContent

 '****************************
 '函数名:  CreateIndex
 '作  用:  生成首页
 '参  数:  无
 '返回值:  首页页面
 '****************************
    Function CreateIndex()
  '读取模版文件内容
  OriginTempContent = ClsTempMain.FetchTempContent(Server.MapPath("../template/template_Index.html"))
  TempContent       = OriginTempContent
  
  '//执行静态标签
  TempContent = ClsTempMain.GetMainLabel(TempContent)

  '执行内部函数标签
  TempContent = ProductLabel(TempContent)
  TempContent = CaseLabel(TempContent)

  '//替换公共标签
  TempContent = ClsTempMain.GetConfigLabel(TempContent)

  '生成页面
  ClsMain.CreateFile Server.MapPath("../"&"index."&HtmType),TempContent
  
  Response.Write( "<div align='center'><a href='../"&"index."&HtmType&"' target='blank'>首页生成完毕</a></div>")
 End Function

 '****************************
 '函数名:  ProductLabel
 '作  用:  产品信息
 '参  数:  label_templateContent -- 内容
 '返回值:  标签内容
 '调用格式 {$Site.IndexProduct(class=0,num=6,td=3,width=165,height=180)/}
 '****************************
 Function ProductLabel(label_templateContent)

     If Not ClsMain.IsChar(label_templateContent) Then
      Exit Function
  End If
     Dim sp_TempContent,item_TempContent,sploop_TempContent,loop_TempContent,loop_Content

  If InStr(label_templateContent,"{$Site.IndexProduct(")>0 Then
      sp_TempContent = Split(label_templateContent,"{$Site.IndexProduct(")(1)

   If InStr(sp_TempContent,")/}")>0 Then
       '取得参数
    item_TempContent = Split(sp_TempContent,")/}")(0)

    '返回结果
    loop_Content   = ProductContent(item_TempContent)

    '替换模板标签
    label_templateContent = Replace(label_templateContent,"{$Site.IndexProduct("&item_TempContent&")/}",loop_Content)

    '处理多个相同函数标签
    label_templateContent = ProductLabel(label_templateContent)

   End If

  End If

  ProductLabel = label_templateContent

 End Function

 '****************************
 '函数名:  ProductContent
 '作  用:  执行产品信息循环部分
 '参  数:  l_templateItem -- 参数
 '返回值:  标签内容
 '调用格式 {$Site.IndexProduct(class=0,num=6,td=3,width=165,height=180,l_LenTitle=10)/}
 '循环模板 {$TrLoop} {$Loop} {/Loop}  {/TrLoop}
 '****************************
 Function ProductContent(l_templateItem)

     If Not ClsMain.IsChar(l_templateItem) Then
      Exit Function
  End If

  Dim mb_TempContent,l_ClassID,l_Num,l_Td,l_Width,l_Height,arr_Item,result_Content
  Dim sp_StartTr,start_Tr,sp_EndTr,end_Tr,l_LenTitle,sp_LoopTempContent,loop_tempContent
  Dim l_SQL,l_Rs
  
  arr_Item = Split(l_templateItem,",")
  l_ClassID   = ClsMain.GetItem(arr_Item(0),"classid=")
  l_Num       = ClsMain.GetItem(arr_Item(1),"num=")
  l_Td        = ClsMain.GetItem(arr_Item(2),"td=")
  l_Width     = ClsMain.GetItem(arr_Item(3),"width=")
  l_Height    = ClsMain.GetItem(arr_Item(4),"height=")
  l_LenTitle  = ClsMain.GetItem(arr_Item(5),"lentitle=")

  If Not ClsMain.IsNumber(l_Num) Then
      l_Num = 8
  End If
       
  '读取循环模板
  mb_TempContent = ClsTempMain.FetchTempContent(Server.MapPath("../template/Label_Index_Product.html"))

  '判断是否有循环标签
  If InStr(mb_TempContent,"{$Loop}") = "" Then
      ProductContent = "系统找不到模板."
   Exit Function
  End If

  '处理循环模板 tr标记
  If InStr(mb_TempContent,"{$TrLoop}")>0 Then
      sp_StartTr = Split(mb_TempContent,"{$TrLoop}")(1)

   '取得开始标识
   start_Tr = Split(sp_StartTr,"{$Loop}")(0)

   '结束标识
   sp_EndTr = Split(sp_StartTr,"{$Loop}")(1)
   end_Tr   = Split(sp_EndTr,"{/Loop}")(1)
   end_Tr   = Replace(end_Tr,"{/TrLoop}","")
  Else
      start_Tr = ""
   end_Tr   = ""
  End If

  '读取loop
  sp_LoopTempContent = Split(mb_TempContent,"{$Loop}")(1)
  mb_LoopTemp        = Split(sp_LoopTempContent,"{/Loop}")(0)

  If l_ClassID<>0 Then
      l_SQL = l_SQL & "Select Top "&l_Num&" * From [JKms_Product] Where (ClassID="&l_ClassID&""&ClsTempMain.GetClsChild("JKms_ProductClass",l_ClassID)
   l_SQL = l_SQL & ")"
  Else
      l_SQL    = "Select Top "&l_Num&" * From [JKms_Product] Where 1=1"
  End If

  l_SQL    = l_SQL & " And Flag=1"
  
  l_SQL    = l_SQL & " Order By ProductID Desc"
  Set l_Rs = Server.CreateObject(RsObj)
  l_Rs.Open l_SQL,Conn,1,1
  
  ii_tr = l_Num Mod l_Td
        
  ii = 1

  If start_Tr <> "" Then
      result_Content = start_Tr
  End If

  Do While Not l_Rs.Eof
     
   l_ProductID     = l_Rs("ProductID")
   l_ProductName   = l_Rs("ProductName")
   l_Intro         = l_Rs("Intro")
   l_ThumbFiles    = l_Rs("ThumbFiles")
   l_UploadFiles   = l_Rs("UploadFiles")
   l_ProductHeight = l_Rs("ProductHeight")
   l_ProductPrice  = l_Rs("ProductPrice")
   l_ProductPosition = l_Rs("ProductPosition")
   l_FileName      = l_Rs("FileName")
   l_FileNameExt   = l_Rs("FileNameExt")
   l_ClassID       = l_Rs("ClassID")
   l_ClassName     = ClsCommon.GetText("Select ClassName From [JKms_ProductClass] Where C_ID="&l_ClassID&"")
   l_ParentClassID = ClsCommon.GetText("Select ClassParent From [JKms_ProductClass] Where C_ID="&l_ClassID&"")
   If l_ParentClassID=0 Then
       l_ParentClassID = l_ClassID
   End If
   l_ParentClassName     = ClsCommon.GetText("Select ClassName From [JKms_ProductClass] Where C_ID="&l_ParentClassID&"")

   l_Url           = InstallDir&ProductDir&l_FileName&"."&l_FileNameExt
   l_ClassUrl      = InstallDir&ProductDir&"list_"&l_ClassID&"_1."&HtmType
   l_ParentUrl     = InstallDir&ProductDir&"list_"&l_ParentClassID&"_1."&HtmType

   If Int(Len(l_ProductName))>Int(l_LenTitle) Then
       l_ProductName = Left(l_ProductName,l_LenTitle)&"..."
   End If
     
   loop_tempContent = mb_LoopTemp

   '//替换标签
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductID/}",l_ProductID)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ClassName/}",l_ClassName)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductName/}",l_ProductName)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Intro/}",l_Intro)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$UploadFiles/}",l_UploadFiles)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ThumbFiles/}",l_ThumbFiles)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Url/}",l_Url)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ClassUrl/}",l_ClassUrl)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ParentClassUrl/}",l_ParentUrl)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ParentClassName/}",l_ParentClassName)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductHeight/}",l_ProductHeight)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductPrice/}",l_ProductPrice)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductPosition/}",l_ProductPosition)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Width/}",l_Width)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Height/}",l_Height)

   result_Content = result_Content & loop_tempContent

   If start_Tr <> "" Then
       If (ii Mod l_Td)=0 Then
        result_Content = result_Content & end_Tr & start_Tr
    End If
   End If

   ii = ii + 1

  l_Rs.MoveNext
  Loop
  l_Rs.Close
  Set l_Rs = Nothing

  If start_Tr <> "" Then
      result_Content = result_Content & End_Tr
  End If

  ProductContent = result_Content

 End Function

 

 '****************************
 '函数名:  CaseLabel
 '作  用:  案例信息
 '参  数:  label_templateContent -- 内容
 '返回值:  标签内容
 '调用格式 {$Site.IndexCase(class=0,num=6,td=3,width=165,height=180)/}
 '****************************
 Function CaseLabel(label_templateContent)

     If Not ClsMain.IsChar(label_templateContent) Then
      Exit Function
  End If
     Dim sp_TempContent,item_TempContent,sploop_TempContent,loop_TempContent,loop_Content

  If InStr(label_templateContent,"{$Site.IndexCase(")>0 Then
      sp_TempContent = Split(label_templateContent,"{$Site.IndexCase(")(1)

   If InStr(sp_TempContent,")/}")>0 Then
       '取得参数
    item_TempContent = Split(sp_TempContent,")/}")(0)

    '返回结果
    loop_Content   = CaseContent(item_TempContent)

    '替换模板标签
    label_templateContent = Replace(label_templateContent,"{$Site.IndexCase("&item_TempContent&")/}",loop_Content)

    '处理多个相同函数标签
    label_templateContent = CaseLabel(label_templateContent)

   End If

  End If

  CaseLabel = label_templateContent

 End Function

 '****************************
 '函数名:  CaseContent
 '作  用:  执行案例信息循环部分
 '参  数:  l_templateItem -- 参数
 '返回值:  标签内容
 '调用格式 {$Site.IndexCase(class=0,num=6,td=3,width=165,height=180,l_LenTitle=10)/}
 '循环模板 {$TrLoop} {$Loop} {/Loop}  {/TrLoop}
 '****************************
 Function CaseContent(l_templateItem)

     If Not ClsMain.IsChar(l_templateItem) Then
      Exit Function
  End If

  Dim mb_TempContent,l_ClassID,l_Num,l_Td,l_Width,l_Height,arr_Item,result_Content
  Dim sp_StartTr,start_Tr,sp_EndTr,end_Tr,l_LenTitle,sp_LoopTempContent,loop_tempContent
  Dim l_SQL,l_Rs
  
  arr_Item = Split(l_templateItem,",")
  l_ClassID   = ClsMain.GetItem(arr_Item(0),"classid=")
  l_Num       = ClsMain.GetItem(arr_Item(1),"num=")
  l_Td        = ClsMain.GetItem(arr_Item(2),"td=")
  l_Width     = ClsMain.GetItem(arr_Item(3),"width=")
  l_Height    = ClsMain.GetItem(arr_Item(4),"height=")
  l_LenTitle  = ClsMain.GetItem(arr_Item(5),"lentitle=")

  If Not ClsMain.IsNumber(l_Num) Then
      l_Num = 8
  End If
       
  '读取循环模板
  mb_TempContent = ClsTempMain.FetchTempContent(Server.MapPath("../template/Label_Index_Case.html"))

  '判断是否有循环标签
  If InStr(mb_TempContent,"{$Loop}") = "" Then
      CaseContent = "系统找不到模板."
   Exit Function
  End If

  '处理循环模板 tr标记
  If InStr(mb_TempContent,"{$TrLoop}")>0 Then
      sp_StartTr = Split(mb_TempContent,"{$TrLoop}")(1)

   '取得开始标识
   start_Tr = Split(sp_StartTr,"{$Loop}")(0)

   '结束标识
   sp_EndTr = Split(sp_StartTr,"{$Loop}")(1)
   end_Tr   = Split(sp_EndTr,"{/Loop}")(1)
   end_Tr   = Replace(end_Tr,"{/TrLoop}","")
  Else
      start_Tr = ""
   end_Tr   = ""
  End If

  '读取loop
  sp_LoopTempContent = Split(mb_TempContent,"{$Loop}")(1)
  mb_LoopTemp        = Split(sp_LoopTempContent,"{/Loop}")(0)

  l_SQL    = "Select Top "&l_Num&" * From [JKms_Case] Where Flag=1"
  If l_ClassID<>0 Then
      l_SQL = l_SQL & " And ClassID="&l_ClassID&""
  End If
  l_SQL = l_SQL & " Order By CaseID Desc"

  Set l_Rs = Server.CreateObject(RsObj)
  l_Rs.Open l_SQL,Conn,1,1
  
  ii_tr = l_Num Mod l_Td
        
  ii = 1

  If start_Tr <> "" Then
      result_Content = start_Tr
  End If

  Do While Not l_Rs.Eof
     
   l_CaseID        = l_Rs("CaseID")
   l_Title         = l_Rs("Title")
   l_ThumbFiles    = l_Rs("ThumbFiles")
   l_UploadFiles   = l_Rs("UploadFiles")
   l_ProductHeight = l_Rs("ProductHeight")
   l_ProductPosition  = l_Rs("ProductPosition")
   l_FileName      = l_Rs("FileName")
   l_FileNameExt   = l_Rs("FileNameExt")
   l_ClassID       = l_Rs("ClassID")
   l_ClassName     = ClsCommon.GetText("Select ClassName From [JKms_CaseClass] Where C_ID="&l_ClassID&"")

   l_ParentClassID = ClsCommon.GetText("Select ClassParent From [JKms_CaseClass] Where C_ID="&l_ClassID&"")
   If l_ParentClassID=0 Then
       l_ParentClassID = l_ClassID
   End If
   l_ParentClassName     = ClsCommon.GetText("Select ClassName From [JKms_CaseClass] Where C_ID="&l_ParentClassID&"")

   l_Url           = InstallDir&CaseDir&l_FileName&"."&l_FileNameExt
   l_ClassUrl      = InstallDir&CaseDir&"list_"&l_ClassID&"_1."&HtmType
   l_ParentClassUrl      = InstallDir&CaseDir&"list_"&l_ClassID&"_1."&HtmType

   If Not ClsMain.IsChar(l_ProductHeight) Then
       l_ProductHeight = ""
   End If

   If Int(Len(l_Title))>Int(l_LenTitle) Then
       l_Title = Left(l_Title,l_LenTitle)&"..."
   End If
     
   loop_tempContent = mb_LoopTemp

   '//替换标签
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$CaseIDID/}",l_CaseID)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Title/}",l_Title)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ClassName/}",l_ClassName)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$UploadFiles/}",l_UploadFiles)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ThumbFiles/}",l_ThumbFiles)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Url/}",l_Url)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ClassUrl/}",l_ClassUrl)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ParentClassUrl/}",l_ParentClassUrl)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ParentClassName/}",l_ParentClassName)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductHeight/}",l_ProductHeight)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$ProductPosition/}",l_ProductPosition)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Width/}",l_Width)
   loop_tempContent = ClsMain.ReplaceItem(loop_tempContent,"{$Height/}",l_Height)

   result_Content = result_Content & loop_tempContent

   If start_Tr <> "" Then
       If (ii Mod l_Td)=0 Then
        result_Content = result_Content & end_Tr & start_Tr
    End If
   End If

   ii = ii + 1

  l_Rs.MoveNext
  Loop
  l_Rs.Close
  Set l_Rs = Nothing

  If start_Tr <> "" Then
      result_Content = result_Content & End_Tr
  End If

  CaseContent = result_Content

 End Function

 

End Class
%>

时间: 2024-09-19 14:26:00

asp教程-生成静态html文件实例代码的相关文章

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

ASP.NET动态生成静态页面的实例代码_实用技巧

最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容.首先制作一个模板页,暂时命名为template.htm,示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans

asp +access 生成 xml文档实例代码

<?xml version="1.0" encoding="utf-8"?> <photos>        <photo filename="大图片的路径" thumbnail="小图的路径" description="图片表述" /> </photos> <% Dim sSQL dim rs dim sCrLf dim sXmlClear dim s

asp.net生成静态页面代码

asp教程.net生成静态页面代码 private static void createfile(string userid, string filename, string htmlcode)         {             filename += ".html";             string localpath = "e:/www.111cn.net/sun/sundecorativesystem/users/" + userid;    

ASP生成静态Html文件技术

网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度.   像www.aspid.cn的主站就采用了TSYS生成html文件!所以吟清最近对生成html比较感兴趣,看了不少文章,也有一点点收获. 1,下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件 <%filename="test.htm"if request("body&qu

比较ASP生成静态HTML文件的几种方法

将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面).前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度. 当然,凡事有利必有弊,生成HTML页面无形中也耗费大量的磁盘空间以存放这些静态文件,在编辑页面过程中除读写数据库外,也要读写服务器磁盘,页面样式的改动必须重新生成全部HTML文件,等等. 像很多搜索引擎,都可以提交网站的页面地址列表,动态文件的收录问题已经不算是个问题了(如google sitemap).得失

ASP生成静态HTML文件的几种方法比较

比较|静态 将动态页面转换生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录(特别是对接受动态参数的页面).前台访问时,脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度. 当然,凡事有利必有弊,生成HTML页面无形中也耗费大量的磁盘空间以存放这些静态文件,在编辑页面过程中除读写数据库外,也要读写服务器磁盘,页面样式的改动必须重新生成全部HTML文件,等等. 像很多搜索引擎,都可以提交网站的页面地址列表,动态文件的收录问题已经不算是个问题了(如google sitem

ASP生成静态Html文件技术杂谈

静态 网页生成静态Html文件有许多好处,比如生成html网页有利于被收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对访问的压力,加快网页打开速度.像www.aspid.cn的主站就采用了TSYS生成html文件!所以吟清最近对生成html比较感兴趣,看了不少文章,也有一点点收获. 1,下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件<%filename="test.htm"ifrequest("body")<&

asp定时生成静态HTML的代码_应用技巧

复制代码 代码如下: <% '判断是否要生成新的HTML if Application("cache_asptohtml_date")="" then Application.Lock Application("cache_asptohtml_date")=now() Application.Unlock Call aspTohtml Response.Redirect("index.html") end if if D