网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网络编程 >> ASP教程 >> 正文
最新文章
· FSO 组件asp生成html静态页面碰到缓存
· asp实现长文章自动分页插件
· 在ASP中访问和更新Cookies集合
· ASP错误提示大全
· 学习ASP的几个观点
· ASP用两级联动下拉列表来显示大类和小
· ASP取当前页面地址和参数
· ASP删除记录的同时删除相关图片
· asp将查询结果导出到excel
· ASP批量导入Excel到Access或者Sql Se
热门文章
 化境ASP无组件上传类 - upload_5xs
 一个获取ACCESS数据库表名以及表名
 asp将查询结果导出到excel
 艾恩ASP无组件上传修改版
 ASP批量导入Excel到Access或者Sql 
 ASP读取数据库的Flash+JS图片切换特
 ASP用两级联动下拉列表来显示大类和
 ASP+JS实现网页歌曲连播、点播功能
 使用ASP重启服务器
 asp批量替换access数据库中指定字段
相关文章
没有相关文章
用ASP生成HTML文章内容分页(带详细注释版)
来源:百度空间 更新时间:2011/4/22 11:25:28 阅读次数:
字体:[ ] 我要投稿

在参考了网上的一些资料后,终于完成了文章内容页生成静态带分页的功能(使用模板),文章内容从哪分页完全由文章添加者自已设定,性能及安全方面未加考虑,呵呵。
    1、相关变量参数:

     strDir                  用于保存.html文件的文件夹路径
     htmlwrite            FSO对象,用于生成.html文件
      arrcontent         按分页标签分割的文章内容数组
      InnerPageNum 统计内容的页数
      rollnum              当前第(rollnum+1)页
    pagelist             分页页码
     strTemplate      存放模板内容
     strTemp            模板内容备份
     $page_break$ 内容分页标签

   2、核心代码

      '========生成内容静态页======
       on Error resume next
       Set fso = Server.CreateObject("Scripting.FileSystemObject")
       '=====用于保存静态文件的文件夹路径名称,这里我按自己的项目设定了====      
      strDir=SITEROOT&"/"&NewsHtmlFile&"/"&year(now)&"-"&month(now)
        '======生成静态文件保存文件夹=====
       if not fso.folderexists(Server.MapPath(strDir)) then fso.CreateFolder(Server.MapPath(strDir))
       set fso=Nothing
      if Err=0 then
            Dim fso,htmlwrite ,arrcontent,InnerPageNum,rollnum,pagelist,strTemplate,strTemp

             '===读取模板文件,我前面的文章关于ASP生成静态的,有这个数据表的内容===
            sql="SELECT tp_content FROM [KrTemplate] WHERE tp_default=1 AND tp_type='新闻内容页模板'"
             Set rs=Conn.Execute(sql)
              if not rs.eof then
                  strTemplate=rs(0)
             end if
              rs.close
              '======备份模板文件,避免模板文件被改写=====
             strTemp=strTemplate
              '======文章数据表=====
             sql="SELECT * FROM [KrNews] WHERE news_html=0 ORDER BY news_date DESC"
            Set rs=Conn.Execute(sql)
             '======循环读取所有要生成的文章信息======
             do while not rs.eof
                  news_keywords=rs("news_keywords")
                  news_content=rs("news_content")
                   news_tips=rs("news_tips")
                  news_name=rs("news_name")
                  news_from=rs("news_from")
                  news_date=rs("news_date")
                  news_id=rs("news_id")

              '====匹配文章内容,如果出现分页标签,则按如下处理,否则按普通生成方法处理===
              if Instr(news_content,"$page_break$") then
                   '===如果文章URL要存入数据库,那么这里存入的地址就为文章分页后的第一页的路径,
                  '===即为下面的URL地址加上第一页的标志,我这里存入数据库的地址是这样的
                  ' ===URL=URL&"_1.html"

                   URL=SITEURL&strDir&"/news_"&news_id&""
                  '======对分页信息的预处理=======

                 '=====将按分页标签分割的文章内容存入数组arrcontent=====
                  arrcontent=split(news_content,"$page_break$")
                  '=====得到文章分割后所得的页数=====
                    InnerPageNum=ubound(arrcontent)
                    pagelist=" "

                  '=====循环得到页码======
                    for rollnum=0 to InnerPageNum
                      pagelist=pagelist & "<a href="""&URL&"_"&(rollnum+1)&".html"" target=""_self"">["&(rollnum+1)&"]</a> "
                 next
                 for rollnum=0 to InnerPageNum
                      '======还原被改写的模板,这里不注意会生成相同的文件======
                      strTemplate=strTemp
     
                        strTemplate=Replace(strTemplate,"$keywords$",news_keywords)
                       strTemplate=Replace(strTemplate,"$news_tips$",news_tips)
                      …………   '略,其他一样写法 

                      '===替换文章内容,并添加分页页码==== 
                      strTemplate=Replace(strTemplate,"$news_content$",arrcontent(rollnum)&"<br><center>分页:"&pagelist&"</center>")

                      '====要生成的HTML页面路径及名称======
                      Address=strDir&"/news_"&news_id&"_"&(rollnum+1)&".html"
                      '======调用adodb.stream方法生成静态页面,此为自定义方法,附在文章后面===
                      WriteToTextFile Address,strTemplate
                     '======(可选择)FSO方法生成静态页面
      '              Set fso = Server.CreateObject("Scripting.FileSystemObject")
       '             Set htmlwrite=fso.CreateTextFile(Server.MapPath(Address),true) '// 创建要生成的静态页 
       '               htmlwrite.WriteLine strTemplate '// 写入网页内容
       '               htmlwrite.close
      '               set htmlwrite=Nothing
      '               set fso=Nothing  
                  next
             else
                    strTemplate=Replace(strTemplate,"$keywords$",news_keywords)
                     strTemplate=Replace(strTemplate,"$news_tips$",news_tips)
                   strTemplate=Replace(strTemplate,"$sitename$",SITENAME)
                    …………

                    strTemplate=Replace(strTemplate,"$news_content$",news_content)   
                      Address=strDir&"/news_"&rs("news_id")&".html"
                   WriteToTextFile Address,strTemplate
                end if
           rs.movenext
           loop
           rs.close
       end if

     '=======ADODB.Stream生成文件函数=========

     Sub WriteToTextFile (FileUrl,byval Str)
            set stm=server.CreateObject("adodb.stream")
           stm.Type=2 '以本模式读取
            stm.mode=3
           stm.charset="GB2312"
            stm.open
            stm.WriteText str
           stm.SaveToFile server.MapPath(FileUrl),2
            stm.flush
            stm.Close
           str=""
            set stm=nothing
      End Sub

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号