コードは次のとおりです:
/*************************************************** * ***************************
バッチ置換、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
"; }その他{
グローバル $sstr,$rpstr,$isreg,$arrext;
if ($dh = opendir($dir)) {
while (false !== ($file = readdir($dh))) {
if(ファイルタイプ($dir.'/'.$file)=='ファイル'){
if( in_array($ext , $arrext) ){
$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 '
}
//把生成文件的过程写出函数
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;
}
?>