首頁 > php教程 > php手册 > php批量替换程序实例代码

php批量替换程序实例代码

WBOY
發布: 2016-05-25 16:40:08
原創
1578 人瀏覽過

本程序可以实现批量替换目录中所有文件中的内容或用于打量给挂了木马文件批量替换与更新了,希望文章对各位同学有所帮助.

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[&#39;Submit&#39;] == &#39;开始执行操作&#39;) {
    $dir = $_POST[&#39;searchpath&#39;];
    $shortname = $_POST[&#39;shortname&#39;];
    $isall = $_POST[&#39;isall&#39;];
    $isreg = $_POST[&#39;isreg&#39;];
    if (!get_magic_quotes_gpc()) {
        $sstr = $_POST[&#39;sstr&#39;];
        $rpstr = $_POST[&#39;rpstr&#39;];
    } else {
        $sstr = stripslashes($_POST[&#39;sstr&#39;]);
        $rpstr = stripslashes($_POST[&#39;rpstr&#39;]);
    }
    //分析shortname
    $arrext = explode("|", $shortname);
    if (!is_dir($dir)) return;
    if ($sstr == &#39;&#39;) return;
    //把末尾的/去掉
    if (substr($dir, -1) == &#39;/&#39;) $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 != &#39;&#39;) {
                    tofile($file, $body2);
                    echo &#39; OK&#39;;
                } else {
                    echo &#39; NO&#39;;
                }
                echo &#39;</li>&#39;;
            }
        }
    }
    $d->close();
}
function hx_dealdir($dir) {
    global $sstr, $rpstr, $isreg, $arrext;
    if ($dh = opendir($dir)) {
        while (false !== ($file = readdir($dh))) {
            if (filetype($dir . &#39;/&#39; . $file) == &#39;file&#39;) {
                $ext = substr(strrchr($file, ".") , 1);
                if (in_array($ext, $arrext)) {
                    echo "<li>$file ";
                    $body = file_get_contents($dir . &#39;/&#39; . $file);
                    if ($isreg == 1) {
                        $body2 = preg_replace($sstr, $rpstr, $body);
                    } else {
                        $body2 = str_replace($sstr, $rpstr, $body);
                    }
                    if ($body != $body2 && $body2 != &#39;&#39;) {
                        tofile($dir . &#39;/&#39; . $file, $body2);
                        echo &#39; OK&#39;;
                    } else {
                        echo &#39; NO&#39;;
                    }
                    echo &#39;</li>&#39;;
                }
            }
        }
        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> 
<html> 
<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[&#39;SCRIPT_NAME&#39;]" 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>//开源代码phprm.com 
  </tr> 
</table> 
  </form> 
<table width="95%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#666666"> 
  <tr bgcolor="#FFFFFF"> 
    <td id="mtd"> 
     <div id=&#39;mdv&#39; style=&#39;width:100%;height:100;&#39;> 
        <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>
登入後複製


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板