用asp实现的iframe批量替换工具

时间:2021-10-30 02:08:42

说明: 
1、此工具可以批量替换网站上asp,.txt,php,aspx...等等文本型的字符 
2、将replace.asp上传至网站根目录后,运行http://网站域名/replace.asp 
3、为了安全,使用本程序后请删除或更名

复制代码代码如下:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> 
<%option explicit 
Response.Buffer=true 
Response.CharSet="GB2312" 
Server.ScriptTimeout=9999999 
%>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
<meta http-equiv="Content-Language" content="zh-CN" />  
<title>Iframe替换程序</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="height:300px;overflow:auto"></textarea> 
        </div>  
      <div id="copyr"><br /> 
      </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(TemplateFname) '获取一个文件的代码  
    Dim FSO, FileObj, FileStreamObj  
            Set FSO = CreateObject("scripting.filesystemobject") 
              If FSO.FileExists(TemplateFname) = False Then 
               getfilecode="" 
              Else 
                Set FileObj = FSO.GetFile(TemplateFname) 
                Set FileStreamObj = FileObj.OpenAsTextStream(1) 
                If Not FileStreamObj.AtEndOfStream Then 
                    getfilecode = FileStreamObj.ReadAll 
                End If 
              End If 
              Set FSO = Nothing:Set FileObj = Nothing:Set FileStreamObj = Nothing 
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(byval 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(server.MapPath(trim(request.form("pfolder")))) '调用程序  
else  
%>  
<div id="top">  
    <form action="?add=yes" method="post" name="strform">  
        <div id="ftitle">Iframe批量替换程序</div>  
        <div id="top_b">  
            <div> 
              <p>文件夹地址: 
                <input type="text" size="25" name="pfolder"/> 
              </p> 
              <p>          如根目录请输入:/,指定目录,请输入:"/目录/" 
              </p> 
            </div>  
            <div>备份原文件:<input type="checkbox" name="bak" value="true" /></div>  
            <div><br />查找字符串↓<textarea name="lookstr" rows="10"></textarea> 
            </div>  
            <div><br />替换查找的字符串↓<textarea name="replacestr"></textarea></div>  
            <div id="btm"><input type="submit" value=" 确定 " /></div>  
          <div id="copyr"><br /> 
          </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>