ホームページ  >  記事  >  バックエンド開発  >  PHP一括置換プログラムサンプルコード_PHPチュートリアル

PHP一括置換プログラムサンプルコード_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:53:29751ブラウズ

コードは次のとおりです:

/*************************************************** * ***************************
バッチ置換、v1.1
************************************************* * *************************
ファイル:batch-replace_utf8.php
機能: このプログラムは、指定されたディレクトリ内のすべてのファイルをスキャンし、内容を置き換えることができます。これを使用すると、ハッキングされた馬のバッチを削除したり、ページ上の特定のコンテンツをバッチで更新したりできます。
このプログラムは、UTF-8 ページの変更に適しています。

/*********************************************** ***************************
*
* このプログラムはフリーソフトウェアですので、再配布や改変が可能です
* これは、
によって発行された GNU Lesser General Public License の条件に基づいています。 * Free Software Foundation のライセンスのバージョン 2、または
* (オプションで) それ以降のバージョン
*
************************************************* * *************************/

set_time_limit(3600);


if($_POST['送信']=='操作の実行を開始'){
$dir = $_POST['検索パス'];
$shortname = $_POST['shortname'];
$isall = $_POST['isall'];
$isreg = $_POST['isreg'];

if (!get_magic_quotes_gpc()) {
$sstr = $_POST['sstr'];
$rpstr = $_POST['rpstr'];
} その他 {
$sstr = ストリップスラッシュ($_POST['sstr']);
$rpstr = ストリップスラッシュ($_POST['rpstr']);
}


//ショートネームを分析します
$arrext = 爆発 ("|",$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);
}その他{
hx_dealdir($dir);

}

終了();
}


function hx_dirtree($path="."){
グローバル $sstr,$rpstr,$isreg,$arrext;


$d = dir($path);
while(false !== ($v = $d->read())) {
if($v == "." || $v == "..") 続行;
$file = $d->path."/".$v;
if(is_dir($file)) {
echo "

$v

"; }その他{
$ext=substr(strrchr($v,"."), 1);
if( in_array($ext , $arrext) ){
echo "
  • $file ";
    $body = file_get_contents($file);
    if($isreg == 1){
    $body2 = preg_replace($sstr, $rpstr, $body);
    }その他{
    $body2 = str_replace($sstr, $rpstr, $body);
    }
    if($body != $body2 && $body2 != ''){
    tofile($file,$body2);
    「OK」をエコーし​​ます;
    }その他{
    「いいえ」をエコーし​​ます;
    }
    echo '
  • ';
    }
    }
    }
    $d->close();
    }

    関数 hx_dealdir($dir){

    グローバル $sstr,$rpstr,$isreg,$arrext;
    if ($dh = opendir($dir)) {
    while (false !== ($file = readdir($dh))) {
    if(ファイルタイプ($dir.'/'.$file)=='ファイル'){

    $ext=substr(strrchr($file,"."), 1);

    if( in_array($ext , $arrext) ){

    エコー "
  • $file ";

    $body = file_get_contents($dir.'/'.$file); if($isreg == 1){
    $body2 = preg_replace($sstr, $rpstr, $body);
    }その他{
    $body2 = str_replace($sstr, $rpstr, $body);
    }
    if($body != $body2 && $body2 != ''){
    tofile($dir.'/'.$file,$body2);
    「OK」をエコーし​​ます;
    }その他{
    「いいえ」をエコーし​​ます;
    }
    echo '

  • ';
    }
    }
    }
    クローズ済み($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版)


    本程序可以扫描指定目录的所有文件,进行内容替换。可用于被批量挂马的删除以及批量更新页面某些内容。

    在文件数量非常多的情况下,本操作比较占用服务器资源,请确脚本超时限制时间允许更改,否则可能无法完成操作。



    <表の幅="95%" border="0" align="center" cellpadding="3" cellpacing="1" bgcolor="#666666">

     開始ルート パス:

    ドットは現在のディレクトリを示します。末尾に / を追加しないでください このディレクトリの下にあるすべてのディレクトリを含めます


     ファイル拡張子:

    複数の場合は | を使用して区切ってください

    <表幅="100%" border="0" cellpacing="1" cellpadding="1">

    コンテンツ置換オプション: 正規表現を使用します< ;


    置換コンテンツ クラスはデフォルトで文字列置換を使用しますが、正規表現も使用できます (チェック済み)。 「置換」が記入されていない場合は、「置換内容」を削除することを意味します。


     置換コンテンツ:

    次のように置き換えます:









    <表の幅="95%" border="0" align="center" cellpadding="3" cellpacing="1" bgcolor="#666666">





    <スクリプトタイプ="text/javascript">
    document.all.mdv.style.pixelHeight = screen.height - 450;
    >/td>



    http://www.bkjia.com/PHPjc/371366.html

    tru​​ehttp://www.bkjia.com/PHPjc/371366.html技術記事コードは次のとおりです: ?php /***************************************** ******* ***************************** バッチ置換、v1.1 ******* ***** ******************************************** ****** **...
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。