返回列表 发帖

[ASP] 字符串批量替换程序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原创  欢迎指正   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 ldstr=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 &amp; "不存在该文件"
end if
end function
sub jstxt(txt) '使用javascript
response.write "<script type=""text/javascript"" language=""javascript"">"
response.write "<!--"&amp;chr(13)&amp;chr(10)
response.write txt
response.write chr(13)&amp;chr(10)&amp;"//-->"
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("" "&amp;replace(cpath,"\","\\") &amp; "不存在该文件夹!"&amp;" "") ")
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+="""&amp; replace(sfile,"\","\\") &amp; "\r\n""" &amp;chr(13)&amp;chr(10))
jstxt("window.status="""&amp; replace(sfile,"\","\\")&amp;"""")
jstxt("document.title="""&amp; replace(sfile,"\","\\")&amp;"""")
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="""&amp;i&amp;"""")
jstxt("document.getelementbyid(""repfile"").innerhtml="""&amp;j&amp;"""")
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=" 确定 "/></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>


本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/8351.htm
欢迎光临:逐梦论坛

技术活?看不懂

TOP

真不知道,还有这么好心的楼主 支持

TOP

谢谢楼主~~

TOP

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 鲁公网安备 37120302000001号