新建文件checkbom.php
/**
* @param $baseDir 目录名称
* @param $auto 自动清理 BOM 开关(1为开,0为关)
*/
function checkDir($baseDir,$auto) {
if ($dh = opendir($baseDir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..') {
if (!is_dir($baseDir . "/" . $file)) {
echo "file: ".$baseDir."/".$file.checkBom($baseDir."/".$file,$auto) . " \n";
} else {
$dirName = $baseDir . "/" . $file;
checkDir($dirName,$auto);
}
}
}
closedir($dh);
}
}
/**
* @param $fileName 文件名称
* @param $auto 自动清理 BOM 开关(1为开,0为关)
* @return string
*/
function checkBom($fileName,$auto) {
$contents = file_get_contents($fileName);
$charset[1] = substr($contents, 0, 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);
file_put_contents($fileName,$rest);
return (" -> BOM found, automatically removed.");
} else {
return (" -> BOM found.");
}
} else {
return (" -> BOM Not Found.");
}
}
//获取检查目录
if (isset($_GET['dir'])) {
$baseDir = $_GET['dir'];
} else {
$baseDir = '.';
}
//调用 checkDir 函数
checkDir($baseDir,0);
参数
1.$auto =1; //自动找出并清理BOM头
2.$auto =0;//自动找出有BOM头的文件
用法
http://localhost/checkbom.php?dir=demo
说明
dir=demo //目录名称