php 批量替换程序的具体实现代码

代码如下:


代码如下:

<?php
/***************************************************************************
batch-replace, v1.1
***************************************************************************
file: batch-replace_utf8.php
functionality: 本程序可以扫描指定目录的所有文件,进行内容替换。可用于被批量挂马的删除以及批量更新页面某些内容。
本程序适用于对UTF-8的页面进行修改。

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

set_time_limit(3600);

if($_POST['Submit']=='开始执行操作'){
$dir = $_POST['searchpath'];
$shortname = $_POST['shortname'];
$isall = $_POST['isall'];
$isreg = $_POST['isreg'];

if (!get_magic_quotes_gpc()) {
$sstr = $_POST['sstr'];
$rpstr = $_POST['rpstr'];
} else {
$sstr = stripslashes($_POST['sstr']);
$rpstr = stripslashes($_POST['rpstr']);
}

//分析shortname
$arrext = explode ("|",$shortname);

if (!is_dir($dir)) return;
if ($sstr == '') return;

//把末尾的/去掉
if(substr($dir,-1)=='/') $dir = substr($dir,0,strrpos($dir,"/"));

//罗列所有目录
if ($isall == 1){
hx_dirtree($dir);
}else{
hx_dealdir($dir);

}

exit();
}

function hx_dirtree($path="."){
global $sstr,$rpstr,$isreg,$arrext;

$d = dir($path);
while(false !== ($v = $d->read())) {
if($v == "." || $v == "..") continue;
$file = $d->path."/".$v;
if(is_dir($file)) {
echo "<p>$v</p>"; hx_dirtree($file);
}else{
$ext=substr(strrchr($v,"."), 1);
if( in_array($ext , $arrext) ){
echo "<li>$file ";
$body = file_get_contents($file);
if($isreg == 1){
$body2 = preg_replace($sstr, $rpstr, $body);
}else{
$body2 = str_replace($sstr, $rpstr, $body);
}
if($body != $body2 && $body2 != ''){
tofile($file,$body2);
echo ' OK';
}else{
echo ' NO';
}
echo '</li>';
}
}
}
$d->close();
}

function hx_dealdir($dir){
global $sstr,$rpstr,$isreg,$arrext;
if ($dh = opendir($dir)) {
while (false !== ($file = readdir($dh))) {
if(filetype($dir.'/'.$file)=='file'){

$ext=substr(strrchr($file,"."), 1);
if( in_array($ext , $arrext) ){

echo "<li>$file ";
$body = file_get_contents($dir.'/'.$file);
if($isreg == 1){
$body2 = preg_replace($sstr, $rpstr, $body);
}else{
$body2 = str_replace($sstr, $rpstr, $body);
}
if($body != $body2 && $body2 != ''){
tofile($dir.'/'.$file,$body2);
echo ' OK';
}else{
echo ' NO';
}
echo '</li>';
}
}
}
closedir($dh);
}

}
//把生成文件的过程写出函数
function tofile($file_name,$file_content){
if (is_file ($file_name)){
@unlink ($file_name);
}
$handle = fopen ($file_name,"w");
if (!is_writable ($file_name)){
return false;
}
if (!fwrite ($handle,$file_content)){
return false;
}
fclose ($handle); //关闭指针
return $file_name;
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>批量替换程序|木马批量删除_www.itlearner.com</title>
<style type="text/css">
body{background:#FFFFFF;color:#000;font-size:12px;}
#top{text-align:center;}
h1,p,form{margin:0;padding:0;}
h1{font-size;14px;}
</style>
</head>
<body>
<div id="top">
<h1>批量替换程序(UTF-8版)</h1>
<div>本程序可以扫描指定目录的所有文件,进行<strong>内容替换</strong>。可用于被批量挂马的删除以及批量更新页面某些内容。<br/>
在文件数量非常多的情况下,本操作比较占用服务器资源,请确脚本超时限制时间允许更改,否则可能无法完成操作。</div>
</div>

<form action="<?=$_SERVER['SCRIPT_NAME']?>" name="form1" target="stafrm" method="post">
<table width="95%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#666666">
<tr>
<td width="10%" bgcolor="#FFFFFF"><strong> 起始根路径:</strong></td>
<td width="90%" bgcolor="#FFFFFF"><input name="searchpath" type="text" id="searchpath" value="./test" size="20" />
点表示当前目录,末尾不要加/ <input type="checkbox" name="isall" value="1" />包含此目录下所有目录</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong> 文件扩展名:</strong></td>
<td bgcolor="#FFFFFF"><input name="shortname" type="text" id="shortname" size="20" value="php|htm" />
多个请用|隔开</td>
</tr>
<tr id="rpct">
<td height="64" colspan="2" bgcolor="#FFFFFF"><table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr bgcolor="#EDFCE2">
<td colspan="4"><strong>内容替换选项:</strong> <input type="checkbox" name="isreg" value="1" />使用正则表达式</td>
</tr>
<tr>
<td colspan="4">替换内容类默认使用字符串替换,也可以使用正则表达式(需勾选)。"替换为"不填写的话,就表示删除"替换内容"。</td>
</tr>
<tr>
<td width="10%"> 替换内容:</td>
<td width="36%"><textarea name="sstr" id="sstr" style="width:90%;height:45px"></textarea></td>
<td width="10%">替 换 为:</td>
<td><textarea name="rpstr" id="rpstr" style="width:90%;height:45px"></textarea></td>
</tr>
</table></td>
</tr>
<tr>
<td colspan="2" height="20" align="center" bgcolor="#E2F5BC"><input type="submit" name="Submit" value="开始执行操作" class="inputbut" /></td>
</tr>
</table>
</form>
<table width="95%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#666666">
<tr bgcolor="#FFFFFF">
<td id="mtd">
<div id='mdv' style='width:100%;height:100;'>
<iframe name="stafrm" frameborder="0" id="stafrm" width="100%" height="100%"></iframe>
</div>
<script type="text/javascript">
document.all.mdv.style.pixelHeight = screen.height - 450;
</script> </td>
</tr>
</table>

</body>
</html>

(0)

相关推荐

  • ThinkPHP实现批量删除数据的代码实例

    ThinkPHP实现批量删除数据原理很简单,只需在模板页面里面写上<input name='id[]' type='checkbox' value='{$vo.id}' class="noborder">这样传过来就是一个数组,action的删除函数del()如下: /** **删除函数支持删除多条和一个 **/ function del(){ //dump($_GET['id']); //$name = strtolower($_GET['_URL_'][0]); //获

  • php+mysqli实现批量替换数据库表前缀的方法

    本文实例讲述了php+mysqli实现批量替换数据库表前缀的方法.分享给大家供大家参考.具体分析如下: 在php中有时我们要替换数据库中表前缀但是又不苦于一个个表去修改前缀,这里我自己写了一个mysqli批量替换数据库表前缀的php程序,感兴趣的朋友可以参考一下,代码如下: <?php header ( 'http-equiv="Content-Type" content="text/html; charset=utf-8"' ); $DB_host = &q

  • php中批量替换文件名的实现代码

    代码如下 复制代码 代码如下: $dir = 'D:\Program Files\resource\application\Skin\PNG\\';//注意这里的路径,最后要加两个\,第一个表示转意,但是这样容易遇到其他特定转义,还要仔细判断,可以写为如下方式 $dir = 'D:/Program Files/resource/application/Skin/PNG/';//写成这样的路径,就不用担心转义问题了.最后面的/不要漏写 if ($dh = opendir($dir)) { whil

  • PHP 批量删除 sql语句

    首先要了解sql语句 $SQL="delete from `jb51` where id in (1,2,4)"; 表单大概是: 复制代码 代码如下: <form action="" method="post"> <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="1"/>

  • php实现批量删除挂马文件及批量替换页面内容完整实例

    本文实例讲述了php实现批量删除挂马文件及批量替换页面内容的方法.分享给大家供大家参考,具体如下: <?php # functionality: 本程序可以扫描指定目录的所有文件,进行内容替换.可用于被批量挂马的删除以及批量更新页面某些内容. # 本程序适用于对UTF-8的页面进行修改. set_time_limit(3600); //脚本运行时间 ?> <?php if($_POST['Submit']=='开始执行操作'){ $dir = $_POST['searchpath'];

  • php批量删除数据

    批量删除文章这个技术没什么高深莫测的,只是想写下来与大家分享.(适合初学者:) 1.首先在文章列表页面(list.php),将多选筐命名为:"$del_id[]",值为文章ID号.      例如(list.php):   <form name="del_form" action="del.php" method="post">   <?php         $result=mysql_query(&quo

  • PHP批量删除、清除UTF-8文件BOM头的代码实例

    记得运行代码前先把文件备份一下哦,避免出现失败问题. 代码一: function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($char

  • php批量删除cookie的简单实现方法

    本文实例讲述了php批量删除cookie的简单实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?php //删除单个cookie:键值设置为空.时间设置为过期了的时间 setCookie("name","",time()-60); //删除多个cookie,采用遍历数组方式 foreach($_COOKIE as $key=>$value){  setCookie($key,"",time()-60); }

  • php 批量替换html标签的实例代码

    1.把html元素全部去掉,或者保留某几个html标签 复制代码 代码如下: <?php$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';echo strip_tags($text);echo "/n"; // Allow <p> and <a>echo str

  • php 批量替换程序的具体实现代码

    代码如下: 复制代码 代码如下: <?php/***************************************************************************batch-replace, v1.1***************************************************************************file: batch-replace_utf8.phpfunctionality: 本程序可以扫描指定目录的所有文

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

    **********字符批量替换程序asp服务器版****************** 安装方法:直接把replace.asp文件放在任意的支持asp+FSO的环境中 运行方法:用http://localhost/.../replace.asp访问即可看到程序的效果 此程序的功能主要用来替换文件夹中所有文本文件字符用的. 如:txt.htm.asp.jsp.php.-- 一切的文本文件 div+CSS布局  兼容FF和IE浏览器 ---------目前具有功能------------------

  • [Perl]文字/代码批量替换工具

    Perl脚本batchReplace.pl可以用来批量替换文件中的文字/代码.可在指定目录中查找指定类型的文件,并递归检查子目录:在输出文件时复制输入文件的目录结构. [附件]Win32应用程序batchReplace.exe是由Perl脚本编译产生的可执行程序,不需安装Perl运行环境即可执行. 在命令行中使用 batchReplace.exe[ -i 输入文件路径(或包含文件的目录)][ -o 输出文件位置(文件或目录)][ -c 批量输入文件的扩展名,以"."开始,多个扩展名之间

  • dos批量替换当前目录后缀名的实现代码

    有时候有些后缀名不满足条件,就需要进行批量的替换,如果人为的去替换,那么如果量少的话还好说,量多的话一个个去替换就太傻了,今天从网络上面查找了一些批量替换的dos命令,用起来还挺好用的,就直接把代码贴在这边. 比如有时候照相出来的后缀名都是jpeg,但是有些网站为了安全,直接限制只能上传jpg的后缀名,这个时候就可以用这个批量替换工具了. 复制代码 代码如下: @echo off set /p filename=请输入要替换的后缀名: echo. set /p filename2=请输入替换后的

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

    说明: 1.此工具可以批量替换网站上asp,.txt,php,aspx...等等文本型的字符 2.将replace.asp上传至网站根目录后,运行http://网站域名/replace.asp 3.为了安全,使用本程序后请删除或更名 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%option explicit Response.Buffer=true Response.CharSet=&q

  • python实现文件名批量替换和内容替换

    指定文件夹,指定文件类型,替换该文件夹下全部文件的内容. 注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题. 复制代码 代码如下: #coding:utf-8 import osimport os.path path='.'oldStr='.php'newStr='.html' for (dirpath, dirnames, filenames) in os.walk(path):    for file in filenames:

  • 用asp实现的代码批量修改程序,fso相关

    用asp实现的代码批量修改程序,fso相关 是因工作需要做的一个批量修改代码的小东西,拿出来与大家分享 目前可以处理的文件类型:.asp .inc .htm .html 具体类型可自行修改添加 程序实现的功能:将源目录下的文件批量修改后存到目的目录下 用它稍做修改可以实现很多东西噢! 别的不说了,代码里面都写的很清楚了 <% '// +---------------------------------------------------------------------------+ '//

  • 批量替换sqlserver数据库挂马字段并防范sql注入攻击的代码

    首先备份数据库,以防不必要的损失.而后对所有被挂马的小于8000字符的varchar字段执行 复制代码 代码如下: update 表名 set 字段名=replace(字段名,'<Script Src=http://c.n%75clear3.com/css/c.js></Script>','') 其中<Script Src=http://c.n%75clear3.com/css/c.js></Script>为挂马字段.执行后挂马字段被清除.但是有部分字段,比

随机推荐