本文实例讲述了php实现批量删除挂马文件及批量替换页面内容的方法。分享给大家供大家参考,具体如下:
<?php # functionality: 本程序可以扫描指定目录的所有文件,进行内容替换。可用于被批量挂马的删除以及批量更新页面某些内容。 # 本程序适用于对UTF-8的页面进行修改。 set_time_limit(3600); //脚本运行时间 ?> <?php 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 "$v
"; hx_dirtree($file); }else{ $ext=substr(strrchr($v,"."), 1); if( in_array($ext , $arrext) ){ echo "
批量替换程序(UTF-8版)
本程序可以扫描指定目录的所有文件,进行内容替换。可用于被批量挂马的删除以及批量更新页面某些内容。
在文件数量非常多的情况下,本操作比较占用服务器资源,请确脚本超时限制时间允许更改,否则可能无法完成操作。
|
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP替换操作技巧总结》、《PHP图形与图片操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。