php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容完整實(shí)例
來源:易賢網(wǎng) 閱讀:1261 次 日期:2016-08-15 14:55:16
溫馨提示:易賢網(wǎng)小編為您整理了“php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容完整實(shí)例”,方便廣大網(wǎng)友查閱!

本文實(shí)例講述了php實(shí)現(xiàn)批量刪除掛馬文件及批量替換頁面內(nèi)容的方法。分享給大家供大家參考,具體如下:

<?php

# functionality:    本程序可以掃描指定目錄的所有文件,進(jìn)行內(nèi)容替換。可用于被批量掛馬的刪除以及批量更新頁面某些內(nèi)容。

#           本程序適用于對(duì)UTF-8的頁面進(jìn)行修改。

set_time_limit(3600); //腳本運(yùn)行時(shí)間

?>

<?php

if($_POST['Submit']=='開始執(zhí)行操作'){

 $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);

  }

}

//把生成文件的過程寫出函數(shù)

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); //關(guān)閉指針

 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>批量替換程序|木馬批量刪除</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>本程序可以掃描指定目錄的所有文件,進(jìn)行<strong>內(nèi)容替換</strong>??捎糜诒慌繏祚R的刪除以及批量更新頁面某些內(nèi)容。<br/>

在文件數(shù)量非常多的情況下,本操作比較占用服務(wù)器資源,請(qǐng)確腳本超時(shí)限制時(shí)間允許更改,否則可能無法完成操作。</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" />

   點(diǎn)表示當(dāng)前目錄,末尾不要加/ <input type="checkbox" name="isall" value="1" />包含此目錄下所有目錄</td>

 </tr>

 <tr>

  <td bgcolor="#FFFFFF"><strong> 文件擴(kuò)展名:</strong></td>

  <td bgcolor="#FFFFFF"><input name="shortname" type="text" id="shortname" size="20" value="php|htm" />

   多個(gè)請(qǐng)用|隔開</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>內(nèi)容替換選項(xiàng):</strong> <input type="checkbox" name="isreg" value="1" />使用正則表達(dá)式</td>

   </tr>

   <tr>

    <td colspan="4">替換內(nèi)容類默認(rèn)使用字符串替換,也可以使用正則表達(dá)式(需勾選)。"替換為"不填寫的話,就表示刪除"替換內(nèi)容"。</td>

   </tr>

   <tr>

    <td width="10%"> 替換內(nèi)容:</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="開始執(zhí)行操作" 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>

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)