以下代码是一段非常简单的ASP生成HTML静态页的实例,简单、直接、明了的说名了HTML静态页的生成。
事先声明:服务器必须支持FSO才能用以下方法生成HTML静态页。
输入一个标题和部分内容,然后点“生成HTML页”,就可以在同目录下生成一个叫“test.html”的静态页。
根据这个原理,可以生成很多其他格式的文件,如.txt文本文件等。
泡泡ASP相关代码: <% If Request.Form("Content")<>"" Then Rem 可以自定义文件名 filename = "test.html" Rem 创建FSO对象 Set fso = Server.CreateObject("Scripting.FileSystemObject") Rem 将相对路径转换成绝对路径,然后生成html文件 Set fout = fso.CreateTextFile(Server.MapPath(""&filename&"")) Rem 将文本内容写入文件 fout.Write "标题(title):" & Request.Form("Title") & "<br>" fout.Write "内容(Content):" & Request.Form("Content") fout.Close Rem 释放对象 Set fout = Nothing Set fso = Nothing End If %> <form name="form1" method="post" action=""> <input name="Title" id="Title" size=30> <br> <br> <textarea name="Content" cols="50" rows="8"></textarea> <br> <br> <input type="submit" name="Submit" value="生成HTML页"> </form> |
根据以上代码,可以添加或灵活修改成自己想要的方式。
比如,一个简单的新闻系统,你只需要多加几个文本况,连上数据库(如果不会连接数据库,请在本站搜索“ASP连接数据库”),添加几个必要的字段,如:编辑,添加时间,来源等。
一般静态页,还有个批量生成的概念,这里这个方法当然不适合批量生成。无论是否存在批量生成的概念,生成静态页避免重名都是要做的,下边说下尽量避免重名的方法:
泡泡ASP相关代码: Rem 生成文件名的函数 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 End Function |
此函数在使用时,将系统的Now()函数值传递过去,作为参数,将时间精确到秒,因为时间是一直不断变化,所以重复的几率很低。
当然,计算机的处理速度用秒来衡量似乎有点太大,所以,有时只是精确到秒,还是会出现重名的几率,此时,就要在这个以时间命名的文件名的基础上,再配合一个随机数。这样几乎就防止了文件名的重名问题。
一般较常见的是随机生成五位数:
这样就可以了,注意:Randomize必须有,否则不能生成不重复的五位数。
经过以上两个方法获得的文件名的格式:系统当前时间+5位随机数+.html
例如:200842118443056831.html,其中2008421184430是系统当前时间,而56831则是生成的随机数,后边的.html就是设置的文件的扩展名。要是换成.txt就变成了一个文本文件。
将开始的简单生成静态页文件的代码做如下修改,就变成了新的生成HTML静态页的方法。与之前不同的是,文件名不在需要人为的去写,而是随机生成的不重复的文件名。
泡泡ASP相关代码: <% Rem 生成文件名的函数 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 End Function Randomize RndNum = Int(89999*Rnd+10000)
If Request.Form("Content")<>"" Then Rem 可以自定义文件名 filename = MakeFileName(Now()) & RndNum & ".html" Rem 创建FSO对象 Set fso = Server.CreateObject("Scripting.FileSystemObject") Rem 将相对路径转换成绝对路径,然后生成html文件 Set fout = fso.CreateTextFile(Server.MapPath(""&filename&"")) Rem 将文本内容写入文件 fout.Write "标题(title):" & Request.Form("Title") & "<br>" fout.Write "内容(Content):" & Request.Form("Content") fout.Close Rem 释放对象 Set fout = Nothing Set fso = Nothing End If %> <form name="form1" method="post" action=""> <input name="Title" id="Title" size=30> <br> <br> <textarea name="Content" cols="50" rows="8"></textarea> <br> <br> <input type="submit" name="Submit" value="生成HTML页"> </form> |
有任何问题,可以加入本站群讨论。本站群号:50076462