|
|
ASP世界
ASP字符查找替换器
最近我维护的一个网站(某净化工程网站)要修改几个词,但是这个词在网站上很多,而且整个网站的页面有数百个,如果一个一个修改或者本地修改后ftp上传的话,相当耗时间。我记的个webshell有个批量替换的功能,不过当我ftp上传这个文件的时候,却发现找不到这个文件,估计是被杀毒给灭了。
索性自己写一个ASP版的字符替换工具。其实实现这个功能很简单。用FSO(Scripting.FileSystemObject)对象的
OpenTextFile 方法打开一个文件,把文件内容读取到一个变量,利用Replace方法替换掉需要替换的字符,然后把替换后的变量的内容写回到文件。
代码如下:
<%
'*******************
'asp版字符替换器
'By Air
'QQ:153580616
'*******************
%>
<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("asp,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="搜索" />
<label>
<input type="reset" name="Submit2" value="重置" />
</label></td>
</tr>
</table>
<br />
</form>
<%
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
for i = LBound(arr) to UBound(arr)
if fso.GetExtensionName(objFile.Name) = arr(i) or arr(i) = "*.*" Then
set f = fso.OpenTextFile(path + "" + objFile.Name,1)
tmpstring = f.ReadAll
if instr(tmpstring,Request("MuMaContent")) <> 0 Then
response.Write(path + "" + objFile.Name +"<br>")
j=j+1
if request("isReplace")="yes" and objFile.Name <> self then
tmpstring = Replace(tmpstring,Request("MuMaContent"),Request("ReplaceStr"))
set f = fso.OpenTextFile(path + ""+objFile.Name,2)
f.write(tmpstring)
f.close
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


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
bianli(Request("WebMuLu"))
Response.Write("<br/>")
Response.Write("==================查找结果为 <font color=red>" &Cstr(j)&"</font> 个文件=================")
%>
</td>
</tr>
</table>
<%
End If



%>
把这个文件上传到网站空间,可以在线查找替换字符。
|