百度空间 | 百度首页 
 
查看文章
 
ASP版网页减肥工具
2008年06月05日 星期四 下午 01:01

  昨天在处理ASP教程时,突然发现一个大问题,什么问题呢?发现每一个htm文件都在50K以上,相当汗哦!一般htm文件在30K以上就相当大了,经检查后发现,文件中存在大量的空格和换行,这还是其次呢,另外还有一个在A标记中tppabs="XXXXXXX"(经查证实为Teleport Ultra留下的)的属性,占用了大量空间。于是想到了网页减肥工具,百度了一把,确实有许多这样的工具,但是都是需要注册的,不注册不能批量处理,752个文件,一个一个处理,汗-直接晕倒!最后决定自己抄家伙写个出来,接下来就开始写了一个ASP版的,主要优化html,htm.shtml等扩展名的文件,处理掉空格和换行以及处理tppabs="XXXXX"的东东,完整源代码如下:

 <form id="form1" name="form1" method="post" action="">
<label></label>
<p>
    <label></label>
</p>
<br/>
<table width="520" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#66CC99">
    <tr bgcolor="#FFFFFF">
      <td height="40 " colspan="2" align="center" bgcolor="#57DB9C"><strong> ASP版网页源码减肥工具</strong></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td align="center">网站目录:</td>
      <td><label>
        <input name="WebMuLu" type="text" id="WebMuLu" size="40" value="<% if Request("WebMuLu")<>"" Then Response.Write(Request("WebMuLu")) else Response.Write(Server.MapPath("./")) End If%>" />
      </label></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td width="127" align="center">文件后缀:</td>
      <td width="373"><input name="HouZhui" type="text" id="HouZhui" value="<%If Request("HouZhui")<>"" Then Response.Write(Request("HouZhui")) Else Response.Write("shtml,html,htm") End If%>" size="40" /></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td align="center">优化:</td>
      <td><label>
        <input name="isReplace" type="checkbox" id="isReplace" <%If Request("isReplace") <>"" Then Response.Write("Checked")%> value="yes" />开/关<!--不选中不进行优化操作,只搜索可优化的文件-->
      </label></td>
    </tr>
    <!--tr bgcolor="#FFFFFF">
      <td align="center">查找内容:</td>
      <td><textarea name="MuMaContent" cols="38" rows="4" id="MuMaContent"><-%if Request("MuMaContent")<>"" Then Response.Write(Request("MuMaContent"))%></textarea></td>
    </tr>
    <tr bgcolor="#FFFFFF">
      <td align="center">替换内容:</td>
      <td><textarea name="ReplaceStr" cols="38" rows="4" id="ReplaceStr"><-%if Request("ReplaceStr")<>"" Then Response.Write(Request("ReplaceStr"))%></textarea></td>
    </tr-->
    <tr bgcolor="#FFFFFF">
      <td height="40" colspan="2" align="center"><input type="submit" name="Submit" value="搜索" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <label>
        <input type="reset" name="Submit2" value="重置" />
        </label></td>
    </tr>
</table>
<br />
</form>
<%
if request("submit")<>"" Then
dim arr,j,selfarr
j=0
    Server.ScriptTimeout=999999999
    self = Request.ServerVariables("SCRIPT_NAME")
    selfarr = split(self,"/")
    self = selfarr(UBound(selfarr))
    arr = split(request("HouZhui"),",")
   
%>
<table width="520" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#66CC99">
    <tr bgcolor="#FFFFFF">
      <td width="500" height="40" align="center" bgcolor="#57DB9C"><strong>查找结果</strong></td>
    </tr>
    <tr bgcolor="#FFFFFF">
    <td height="40" align="left">
    <%   
    if Right(Request("WebMuLu"),1)="" Then
        WebMuLu = Left(Request("WebMuLu"),len(Request("WebMuLu"))-1)
    End If
    call bianli(Request("WebMuLu"))
    Response.Write("<br/>")
    Response.Write("==================查找结果为 <font color=red>" &Cstr(j)&"</font> 个文件=================")
    %>
    </td>
    </tr>
</table>
<%
End If
Function BianLi(path)‘遍历文件夹下可优化的文件并优化
Set fso=Server.CreateObject("Scripting.FileSystemObject")
on error resume next
set objFolder=fso.GetFolder(path)
set objFiles=objFolder.Files

for each objFile in objFiles
   filePath=path + "\" + objFile.Name
   for i = LBound(arr) to UBound(arr)
    if fso.GetExtensionName(objFile.Name) = arr(i) or arr(i) = "*.*" Then
     set f = fso.OpenTextFile(filePath,1)
     tmpstring = f.ReadAll
     if tmpstring <> "" Then
      response.Write(filePath +"<br>")
      j=j+1
      if request("isReplace")="yes" and objFile.Name <> self then
       'tmpstring = Replace(tmpstring,Request("MuMaContent"),Request("ReplaceStr"))
       'Response.write self
       'Response.end
       if fso.GetExtensionName(objFile.Name)="asp" then
        'tmpstring=ReplaceStr(tmpstring,"[\n\r\t]",chr(13))
       else
        tmpstring=ReplaceStr(tmpstring,"(tppabs*= *['""]*(\S+)[""'])","")’处理tppabs="xxxxxxx"为空
        tmpstring=ReplaceStr(tmpstring,"[\r\n]","")’处理回车符,换行符,空格为空
       end if      
       set f = fso.OpenTextFile(filePath,2)
       f.write(tmpstring)
       f.close
       response.Write("文件"+filePath+"优化完毕!<br>")
      end if
     end if
    end if
   next
next

set objSubFolders=objFolder.Subfolders
for each objSubFolder in objSubFolders
   nowpath=path + "" + objSubFolder.name
   bianli(nowpath)
next

set objFolder=nothing
set objSubFolders=nothing
set fso=nothing
end function

'处理正则表达式函数其中str为需处理的字符串,Pattern为自定义正则表达式,tostr为替换字符

Function ReplaceStr(Str,Pattern,tostr)
     If IsNull(Str) Then
           ReplaceStr = Str
           Exit Function
     End IF
     ReplaceStr = False
     Str = Trim(Str)
     Dim RegEx
     Set RegEx = New RegExp
     RegEx.Pattern = Pattern
     'RegEx.Pattern = "[\r\n]"
     RegEx.IgnoreCase = True'区分大小写
     regEx.Global = True'全部匹配
       ReplaceStr = regEx.Replace(Str,tostr)
End Function
%>

  经过以上程序处理后,呵呵,原来50K的文件,现在只有21K,一个字“爽”,原来33.9M的文件夹,现在看只有15.8M,节约了不少网页空间,对访问速度已有所帮助,直是太好了...


类别:web开发 | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
2
2008年09月12日 星期五 下午 01:51 | 回复
兄弟怎么样用呢,我的页太多了,而且也太大了,能教我一下吗?
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu