十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了ASP生成HTML静态页面及分页如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ASP生成HTML静态页面及分页如何实现文章都会有所收获,下面我们一起来看看吧。
成都创新互联坚实的技术研发基础赢得了行业内的良好口碑,公司成立十多年来,为成百上千家企业提供过网站建设、软件开发、搜索引擎优化技术、互联网大数据整合营销服务,多年的技术服务成功经验、众多的客户使我们能懂得更多,做得更好。"让您的网站跑起来"是我们一直追求的目标!
相关变量参数: strDir 用于保存.html文件的文件夹路径 htmlwrite FSO对象,用于生成.html文件 arrcontent 按分页标签分割的文章内容数组 InnerPageNum 统计内容的页数 rollnum 当前第(rollnum+1)页 pagelist 分页页码 strTemplate 存放模板内容 strTe
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 & "["&(rollnum+1)&"] "
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)&"
分页:"&pagelist&"
")
'====要生成的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
关于“ASP生成HTML静态页面及分页如何实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ASP生成HTML静态页面及分页如何实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。