怎么把ASP转成HTML?

html-css09

怎么把ASP转成HTML?,第1张

Asp转换为HTML2008-02-15 20:16字段c_id:自动编号,主关键字

字段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