字段c_title:文本类型,保存文章标题
字段c_content:备注类型,保存文章内容
字段c_filepath:文本类型,保持生成文件的路径地址
字段c_time:日期/时间类型,默认值:Now()
三、页面需求设计
1、首先建立一个存放HTML页的文件夹
在文件同一目录下,建立文件夹newsfile,夹子内部主要存放生成的HTML页面,当然内部还会采用程序方式建立以日期命名的子文件夹,以方便浏览以及管理。
2、功能函数页面lib.asp
引用:
<%
'生成文件名的函数
function makefilename(fname)
fname = fname
fname = replace(fname,"-","")
fname = replace(fname," ","")
fname = replace(fname,":","")
fname = replace(fname,"PM","")
fname = replace(fname,"AM","")
fname = replace(fname,"上午","")
fname = replace(fname,"下午","")
makefilename=fname &".shtml"
end function
'保持数据格式不变的函数
function HTMLEncode(fString)
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) &CHR(10), "<br>")
fString = Replace(fString, CHR(10), "<br>")
HTMLEncode = fString
end function
%>
3、数据库连接页面conn.asp
完成数据库的字符串连接方法
<%
set conn = Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0Data Source="&Server.MapPath("asp2html.mdb")
conn.Open connstr
%>
4、信息输入页面add.html
其实很简单,就是表单嘛。注意action是跳转到addit.asp
引用:
<form action="addit.asp" method="post">
Title:<input type="text" name="c_title"><br>
Content:<br>
<textarea name="c_content" rows="8" cols="30"></textarea><br>
<input type="submit" value="Add">
<input type="reset" value="Reset">
</form>
5、处理数据功能显示页面addit.asp
首先是处理接受过来的数据,并将值写入数据库;接着将模板代码进行引用,并将其中特殊代码转换为接受值,最终通过FSO生成HTML页面。其中需要注意的还有,生成文件的路径地址保存至数据库表。
引用:
<%'容错处理
On Error Resume Next
%>
<!--#include file="conn.asp" -->
<!--#include file="lib.asp" -->
<%'接受传递值
c_title=request.form("c_title")
c_content=request.form("c_content")
%>
<%'生成HTML文件名,建立文件夹,指定文件路径
fname = makefilename(now()) 'makefilename为自定义函数
folder = "newsfile/"&date()&"/"
filepath = folder&fname
%>
<%'将接受值及路径保持至数据库表
sql = "Select * from c_news"
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open sql,conn,3,2
rs.addnew
rs("c_title")=c_title
rs("c_content")=c_content
rs("c_filepath")=filepath
rs.update
rs.close
Set rs = Nothing
%>
<%'打开模板代码,并将其中特殊代码转变为接受值
sql1="select m_id,m_html from c_moban where m_id=1"
set rs1=Server.CreateObject("adodb.recordset")
rs1.open sql1,conn,1,1
mb_code=rs1("m_html")
rs1.close
set rs1=nothing
conn.close
set conn=nothing
c_title=htmlencode(c_title)
c_content=htmlencode(c_content)
mb_code=replace(mb_code,"$cntop{LogContent}quot,now())
mb_code=replace(mb_code,"$cnleft{LogContent}quot,c_title)
mb_code=replace(mb_code,"$cnright{LogContent}quot,c_content)
%>
<%'生成HTML页面
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder(Server.MapPath(folder))
Set fout = fso.CreateTextFile(Server.MapPath(filepath))
fout.WriteLine mb_code
fout.close
%>
文章添加成功,<a href="showit.asp">浏览</a>
你的意思是将 ASP 代码 生成静态,让客户端访问?例子
<%
'使用方法:
' dim UTH,HtmlDate
' set UTH=new URLtoHtml创建对象
' UTH.URL="http://……"获取要处理的URL
' HtmlDate=UTH.HttpDate 取得处理后的网页数据
' ....... 中间处理代码
' set UTH=nothing 删除实例对象
'**************************
class URLtoHtml
private c_url
public property let URL(x_url)
c_url = x_url
end property
private function GetURL(url)
set Retrieval = CreateObject("Microsoft.XMLHTTP")
with Retrieval
.Open "GET", url, false
.Send
GetURL = .responsebody
end with
set Retrieval = nothing
end function
private function Bytes2bStr2(url)
dim BytesStream,StringReturn,vin,adTypeText
adTypeText=2
vin=GetURL(url)
set BytesStream = Server.CreateObject("ADODB.Stream")
with BytesStream
.Type = adTypeText
.Open
.WriteText vin
.Position = 0
.Charset = "GB2312"
.Position = 2
StringReturn = .ReadText
.close
end with
Set BytesStream = nothing
Bytes2bStr2 = StringReturn
end function
public property get HttpDate
HttpDate=Bytes2bStr2(c_url)
end property
end class
%>
'////////////////////////////////////////////一下是代码的调用
<%
dim UTH,fso,fout,HttpDate
set UTH=new URLtoHtml
UTH.URL="http://"&Request.ServerVariables("SERVER_NAME")&":"&Request.ServerVariables("SERVER_PORT")&"/1.asp"
'/////////////////////////////////////////////////////1.asp是测试页面的名称
HttpDate=UTH.HttpDate
set fso = Server.CreateObject("Scripting.FileSystemObject")
set fout=fso.CreateTextFile(Server.MapPath("/Index.htm"))
fout.WriteLine HttpDate
set UTH=nothing
%>
<%
if err.number>0 then
response.Write "生成网站首页失败!"
else
response.Write "生成网站首页成功!"
end if
%>
工具:
飞鸟asp生成htm插件1.4
下载地址:
http://www.21tx.com/src/2007/10/26/10037.html
理论知识:一。伪静态二。1.XMLHTTP页面的HTML(这一步奖asp文件转化成编译后的静态,也就是浏览器显示的内容)
2.正则得出页面的所有超链接
3,替换得到静态页面后的超链接,从而使所有href=“1.asp”》》href=“1.html”
4,文件生成,读取页面的URL,然后读取替换后的HTML
5,1.asp保存成为1.html Call SaveToFile(“xmlhttp读取的并且替换了超链接的页面静态代码”,”1.html“)
Function SaveToFile(ByVal strBody, ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number=-2147221005 Then
Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Open
.Charset = "utf-8" '可以根据需求,把这里的编码修改成utf-8等编码格式
.Position = objStream.Size
.WriteText = strBody
.SaveToFile Server.MapPath(File),2
.Close
End With
Set objStream = Nothing
End Function
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)