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

时间:2021-10-12 10:27:28

**********字符批量替换程序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原创  欢迎指正    hezhiwu5@163.com    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编写  hezhiwu5@163.com " /> 
<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 />风云制作  hezhiwu5@163.com  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 />风云制作  hezhiwu5@163.com  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>