字符批量替换程序asp服务器版

  **********字符批量替换程序asp服务器版******************

  安装方法:直接把replace.asp文件放在任意的支持asp+FSO的环境中

  运行方法:用http://localhost/.../replace.asp访问即可看到程序的效果

  此程序的功能主要用来替换文件夹中所有文本文件字符用的。

  如:txt、htm、asp、jsp、php、…… 一切的文本文件

  div+CSS布局  兼容FF和IE浏览器

  ---------目前具有功能------------------------

  即时查看当前替换文件路径

  可选备份原文件为 “原文件.bak”

  文件夹无限层嵌套替换字符

  被替换文件路径显示

  总文件数和被替换过文件数显示

  ...

  程序用途举例-

  清除类似的网页木马<iframe src="" width="0" height="0"></iframe>

  批量替换文件字符,少量的文件就用不上这个程序了

  可上传在服务器上,在线替换批量替换字符

  当“查找字符”和“替换的字符串”相同时,可以查找大量文本文件中,哪些文件包含有目标字符

  ....

  155120699原创  欢迎指正    [email protected]    21:47 2007-3-12

  ------------------------------------------------------------------------------------------------------

  

复制代码 代码如下:

  <%Option Explicit%>

  <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

  <meta http-equiv="Content-Language" content="zh-CN" />

  <meta name="author" content="155120699编写  [email protected] " />

  <meta name="Description" content="字符替换程序" />

  <meta name="copyright" content="155120699原创web程序 欢迎指正"/>

  <title>字符替换程序asp服务器版</title>

  <style type="text/css">

  <!--

  #top

  {

  text-align:center;

  margin:auto;

  font-size:11pt;

  }

  #top_b

  {

  text-align:left;

  width:350px;

  border:1px solid #000000;

  margin:auto;

  padding:0px;

  line-height:200%;

  }

  #top_b div

  {

  padding-left:8px;

  padding-right:8px;

  }

  #ftitle

  {

  text-align:center;

  width:350px;

  background:silver;

  font-weight:bold;

  letter-spacing:5px;

  font-size:15pt;

  padding:3px 0 3px 0;

  color:red;

  margin:auto;

  border:1px solid #000000;

  border-width:1px 1px 0 1px;

  }

  #btm

  {

  text-align:center;

  padding-top:8px;

  padding-bottom:8px;

  background:#ececec

  }

  textarea

  {

  width:330;

  height:100px

  }

  #copyr

  {

  font-size:9pt;

  text-align:center;

  color:silver

  }

  -->

  </style>

  </head>

  <body>

  <%

  if request.querystring("add")="yes" then

  %>

  <div id="top">

  <div id="ftitle">程序处理结果</div>

  <div id="top_b">

  <div>

  总文件:<span style="color:red" id="allfile"> </span>个

  替换过文件:<span style="color:red" id="repfile"> </span>个

  </div>

  <div><br />被替换过文件路径列表↓<textarea id="txtreple" style="overflow:auto"></textarea></div>

  <div id="copyr"><br />风云制作  [email protected]  2007-3-12</div>

  </div>

  </div>

  <%

  dim oldstr :oldstr=request.form("lookstr")  '源字符串

  dim newstr :newstr=request.form("replacestr") '新字符串

  dim rep : rep=cbool(request.form("bak"))   '是否备份文件,true为备份文件

  dim i : i=0  '总文件个数

  dim j : j=0  '被替换的文件个数

  function chkexistsfile(path) '判断一个文件是否存在,如果存在,返回true,否则返回false

  dim fso

  set fso=server.createobject("scripting.filesystemobject")

  if fso.fileexists(path) then

  chkexistsfile=true

  else

  chkexistsfile=false

  end if

  set fso=nothing

  end function

  function getfilecode(path) '获取一个文件的代码

  dim fso

  if chkexistsfile(path) then

  set fso=server.createobject("scripting.filesystemobject")

  dim filecode : set filecode=fso.opentextfile(path,1)

  getfilecode=filecode.readall

  set fso=nothing

  else

  getfilecode=path & "不存在该文件"

  end if

  end function

  sub jstxt(txt) '使用JavaScript

  response.write "<script type=""text/JavaScript"" language=""JavaScript"">"

  response.write "<!--"&chr(13)&chr(10)

  response.write txt

  response.write chr(13)&chr(10)&"//-->"

  response.write "</script>"

  end sub

  sub getfolderfile(cpath) '替换某一个(子)文件夹下的所有文件

  response.flush

  dim fso : set fso=server.createobject("scripting.filesystemobject")

  if fso.folderexists(cpath)=false then

  jstxt("alert("" "&replace(cpath,"\","\\") & "不存在该文件夹!"&" "") ")

  response.end

  end if

  dim folders : set folders=fso.GetFolder(cpath)

  dim sfile

  for each sfile in folders.files

  dim filecode : filecode=getfilecode(sfile)

  dim filecode_b : filecode_b=filecode

  if instr(filecode,oldstr) <> 0 and fso.GetExtensionName(sfile) <> "bak" then

  jstxt("document.getElementById(""txtreple"").value+="""& replace(sfile,"\","\\") & "\r\n""" &chr(13)&chr(10))

  jstxt("window.status="""& replace(sfile,"\","\\")&"""")

  jstxt("document.title="""& replace(sfile,"\","\\")&"""")

  filecode=replace(filecode,oldstr,newstr)

  dim newfilecode : set newfilecode=fso.opentextfile(sfile,2)

  newfilecode.write filecode

  j=j+1

  if rep then

  dim newfilecode_b : set newfilecode_b=fso.opentextfile(sfile+".bak",2,true)

  newfilecode_b.write filecode_b

  end if

  end if

  i=i+1

  jstxt("document.getElementById(""allfile"").innerHTML="""&i&"""")

  jstxt("document.getElementById(""repfile"").innerHTML="""&j&"""")

  next

  dim sfolder

  for each sfolder in folders.subfolders

  getfolderfile(sfolder)

  next

  set fso=nothing

  end sub

  getfolderfile(trim(request.form("pfolder"))) '调用程序

  else

  %>

  <div id="top">

  <form action="?add=yes" method="post" name="strform">

  <div id="ftitle">字符批量替换程序</div>

  <div id="top_b">

  <div>文件夹地址:<input type="text" size="25" name="pfolder"/></div>

  <div>备份原文件:<input type="checkbox" name="bak" value="true" /></div>

  <div><br />查找字符串↓<textarea name="lookstr"></textarea></div>

  <div><br />替换查找的字符串↓<textarea name="replacestr"></textarea></div>

  <div id="btm"><input type="button" value=" 确定 " onclick="chk()"/></div>

  <div id="copyr"><br />风云制作  [email protected]  2007-3-12</div>

  </div>

  </form>

  </div>

  <SCRIPT type="text/javascript" LANGUAGE="JavaScript">

  <!--

  function chk()

  {

  var forma=document.strform;

  if(forma.pfolder.value=="")

  {

  alert("文件夹地址不能为空");

  forma.pfolder.focus();

  return;

  }

  else

  {

  forma.pfolder.value=forma.pfolder.value.replace(/\//g,"\\");

  forma.pfolder.value=forma.pfolder.value.replace(/。/g,".");

  }

  if(forma.lookstr.value=="")

  {

  alert("查找字符串不能为空!");

  forma.lookstr.focus();

  }

  else if(forma.replacestr.value=="")

  {

  alert("替换查找的字符串不能为空");

  forma.replacestr.focus();

  }

  else

  {

  forma.submit();

  }

  }

  //-->

  </SCRIPT>

  <% end if %>

  </body>

  </html>