ホームページ  >  記事  >  バックエンド開発  >  PHP バッチは utf-8 ファイルの BOM ヘッダーをクリアします

PHP バッチは utf-8 ファイルの BOM ヘッダーをクリアします

WBOY
WBOYオリジナル
2016-06-20 13:01:19940ブラウズ

PHP バッチは utf-8 ファイルの BOM ヘッダーをクリアします

<?php   
if (isset($_GET['dir'])){ //设置文件目录   
$basedir=$_GET['dir'];   
}else{   
$basedir = '.';   
}   
$auto = 1;   
checkdir($basedir);   
function checkdir($basedir){   
if ($dh = opendir($basedir)) {   
  while (($file = readdir($dh)) !== false) {   
   if ($file != '.' && $file != '..'){   
    if (!is_dir($basedir."/".$file)) {   
     echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";   
    }else{   
     $dirname = $basedir."/".$file;   
     checkdir($dirname);   
    }   
   }   
  }   
closedir($dh);   
}   
}   
function checkBOM ($filename) {   
global $auto;   
$contents = file_get_contents($filename);   
$charset[1] = substr($contents, , 1);   
$charset[2] = substr($contents, 1, 1);   
$charset[3] = substr($contents, 2, 1);   
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {   
  if ($auto == 1) {   
   $rest = substr($contents, 3);   
   rewrite ($filename, $rest);   
   return ("<font color=red>BOM found, automatically removed._<a href=http://www.k686.com>http://www.k686.com</a></font>");   
  } else {   
   return ("<font color=red>BOM found.</font>");   
  }   
}   
else return ("BOM Not Found.");   
}   
function rewrite ($filename, $data) {   
$filenum = fopen($filename, "w");   
flock($filenum, LOCK_EX);   
fwrite($filenum, $data);   
fclose($filenum);   
}   
?>

それを php ファイルとして保存し、Web サイトのルート ディレクトリに置きます。このファイルは、私が個人的にテストしたもので、完全に安全です。

Web サイトのルート ディレクトリに配置して実行すると、すべてのファイルがスキャンされます。
例: http://www.baidu.com/checkbom.php


を実行するディレクトリを指定することもできます
例: http://www.baidu.com/checkbom.php?dir=html


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。