|
代码如下: 代码如下:/*************************************************************************** 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,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 "
$v "; hx_dirtree($file); }else{ $ext=substr(strrchr($v,"."),1); if( in_array($ext,$arrext) ){ echo "$file "; $body = file_get_contents($file); if($isreg == 1){ $body2 = preg_replace($sstr,$body); }else{ $body2 = str_replace($sstr,$body); } if($body != $body2 && $body2 != ''){ tofile($file,$body2); echo ' OK'; }else{ echo ' NO'; } echo ''; } } } $d->close(); }
function hx_dealdir($dir){ global $sstr,$arrext; if ($dh = opendir($dir)) { while (false !== ($file = readdir($dh))) { if(filetype($dir.'/'.$file)=='file'){
$ext=substr(strrchr($file,$arrext) ){
echo " $file "; $body = file_get_contents($dir.'/'.$file); if($isreg == 1){ $body2 = preg_replace($sstr,$body); } if($body != $body2 && $body2 != ''){ tofile($dir.'/'.$file,$body2); echo ' OK'; }else{ echo ' NO'; } echo ''; } } } 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; } ?> 批量替换程序|木马批量删除_www.itlearner.com
批量替换程序(UTF-8版) 本程序可以扫描指定目录的所有文件,进行内容替换。可用于被批量挂马的删除以及批量更新页面某些内容。
在文件数量非常多的情况下,本操作比较占用服务器资源,请确脚本超时限制时间允许更改,否则可能无法完成操作。
|